Я не совсем уверен, что имя вещи, которую я описываю, называется конструктором? Однако то, что я хочу сделать, - это увидеть, какой конструктор используется для создания объекта.Java, как проверить, какой конструктор используется?
Class Classname{
private int a, b, c;
public Classname(int a, int b){
this.a = a;
this.b = b;
}
public Classname(int a, int b, int c){
this.a = a;
this.b = b;
this.c = c;
}
}
И если мы создаем объект:
Classname testobject = new Classname(1, 2);
Что мне нужно, что для это потому, что мне нужно, чтобы получить число varuables в объекте, и значения этих переменных. Скажем, я имею следующее:
classname[] multiple = new classname[10]
То есть «имя класса» -Объекты от обоих конструкторах, и мне нужно, чтобы написать эти объекты в строки, так что я думаю, что я должен каким-то образом получить правильный конструктор, и если это первый один
public static String getStringform(Classname classname){
String stringform;
if(constructor == 1)
stringform = String.valueOf(classname.a) +String.valueOf(classname.b);
else
stringform = String.valueOf(classname.a) +String.valueOf(classname.b) +String.valueOf(classname.c);
}
Edit: Как указывается в комментариях, я сделал новые конструкторы, как это:
private int type;
private int a, b;
public Classname(int a, int b){
this.type = 1;
this.a = a;
this.b = b;
}
, но даже с такой конструктор, когда я пытаюсь получить «тип» объекта, сделанного в другом классе, я не получаю нужный тип ..? Я получаю java.lang.NullPointerException при использовании followin:
public static String toString(Classname object){
if(object.type == 1) //<-- There's the exception
Извините за плохой английский, написал его по телефону, слишком медленно, чтобы редактировать, сделаю это позже :) – user3738243