Situatie:
----------
Ik ben een kortingSysteem aan't maken dat "pluggable" is aan de hand van ini-bestanden. In het ini-bestand schrijf je de naam van de kortingsklasse. Deze wordt dan ingeplugged in de interace KortingIF (door middel van reflection).
Nu zou je ook meerdere kortingen moeten kunnen inpluggen.Je moet dan kiezen of dat de kortingen cumulatief zijn, of de laagste, of de hoogste wordt gekozen voor de klant.
Relatie tussen de objecten:
-------------------------------------
Bij één korting heeft de klasse Verkoop een private member van het type KortingIF, bij het "inpluggen" wordt hierdan een concrete intantie van een kortingsklasse aan toegekent
Voor meerdere kortingen per verkoop heb ik de member vervangen door een array van het type KortingIF[];
probleem:
------------
Het probleem zit bij het inpluggen. (Alles werkt wel wanneer je slechts één KortingIF heb, dus geen array).
Verkoop heeft een statische methode:
Bij het aanroepen van deze methode loopt het mis.
Fout @runtime:
Deze error verwijst naar de methode korting: dit is een publieke non-statische methode dus ik begrijp in hemelsnaam niet wat deze er mee te maken heeft. In deze methode wordt er gekeken welke type van korting ik heb gekozen (min,max, cumulatief) en aan de hand daarvoor itereren door de kortingen van de verschillene kortinsmogelijkheden en de beste geven.
Volgens de documentatie staat deze error voor onveilige code. Wil dat zeggen dat de methode "korting" "onveilig" is??
----------
Ik ben een kortingSysteem aan't maken dat "pluggable" is aan de hand van ini-bestanden. In het ini-bestand schrijf je de naam van de kortingsklasse. Deze wordt dan ingeplugged in de interace KortingIF (door middel van reflection).
Nu zou je ook meerdere kortingen moeten kunnen inpluggen.Je moet dan kiezen of dat de kortingen cumulatief zijn, of de laagste, of de hoogste wordt gekozen voor de klant.
Relatie tussen de objecten:
-------------------------------------
Bij één korting heeft de klasse Verkoop een private member van het type KortingIF, bij het "inpluggen" wordt hierdan een concrete intantie van een kortingsklasse aan toegekent
Voor meerdere kortingen per verkoop heb ik de member vervangen door een array van het type KortingIF[];
probleem:
------------
Het probleem zit bij het inpluggen. (Alles werkt wel wanneer je slechts één KortingIF heb, dus geen array).
Verkoop heeft een statische methode:
code:
1
2
3
4
5
| private static kortingIF[] kortingen;
public static void setKortingType(KortingIF[] kortingen){
kortingen = kortingen;
} |
Bij het aanroepen van deze methode loopt het mis.
code:
1
2
3
| KortingFactory kf = KortingFactory.getInstantie(); KortingIF[] kortingen= kf.getKortingen(); Verkoop.setKortingType(kortingen); |
Fout @runtime:
code:
1
| Java.lang.VerifyError in class tekoop method: korting signature() D) Register pair 3/4 contains wrong type. |
Deze error verwijst naar de methode korting: dit is een publieke non-statische methode dus ik begrijp in hemelsnaam niet wat deze er mee te maken heeft. In deze methode wordt er gekeken welke type van korting ik heb gekozen (min,max, cumulatief) en aan de hand daarvoor itereren door de kortingen van de verschillene kortinsmogelijkheden en de beste geven.
Volgens de documentatie staat deze error voor onveilige code. Wil dat zeggen dat de methode "korting" "onveilig" is??
[ Voor 4% gewijzigd door Verwijderd op 02-01-2004 23:19 ]