Я пытаюсь передать несколько типов объектов (String, int, int) в другой package1 и вернуть этот package1 обратно (String, int, int).Но я хочу сделать это, не импортируя исходный пакет 2 в пакет 1, передав класс.
Метод 1: Передайте список объектов и приведите его обратно в String / int при вызове.(Я читал, что передача объектов является табу и должна проходить либо классы, либо только один определенный тип)
//package1 - cannot import any other packages
public List<Object> returnvalue (String aString, int aInt, int bInt) {
//Just an example of processed values
aString = aString + "append";
aInt++;
bInt = bInt+2;
List<Object> returnvalue = new ArrayList<>();
returnvalue.add(aString);
returnvalue.add(aInt);
returnvalue.add(bInt);
return returnvalue;
}
//package2 - can import package1 inside
int aInt = 1;
int bInt = 1;
List<Object> receivevalue = package1.returnvalue("aString",aInt,bInt);
String receivestring = (String)receivevalue.get(0);
String receiveint1 = (int)receivevalue.get(1);
String receiveint2 = (int)receivevalue.get(2);
Method2: передать список строк и преобразовать его внутри метода.(Таким образом, я не передаю объекты)
//package1 - cannot import any other packages
public List<String> returnvalue (String aString, String aInt, String bInt) {
//Just an example of processed values
aString = aString + "append";
int tmpInt = Integer.valueOf(aInt);
tmpInt++;
aInt = String.valueOf(tmpInt);
int tmpInt2 = Integer.valueOf(bInt);
tmpInt2=tmpInt2-2;
bInt = String.valueOf(tmpInt2);
List<String> returnvalue = new ArrayList<>();
returnvalue.add(aString);
returnvalue.add(aInt);
returnvalue.add(bInt);
return returnvalue;
}
//package2 - can import package1 inside
int aInt = 1;
int bInt = 1;
List<String> receivevalue = package1.returnvalue("aString",aInt,bInt);
String receivestring = receivevalue.get(0);
String receiveint1 = receivevalue.get(1);
String receiveint2 = receivevalue.get(2);
Из того, что я прочитал, большинство, похоже, предлагает создать класс и передать этот класс, чтобы он имел безопасность типов и был бы намного более читабельным.,Однако без вызова package2 в package1 я считаю, что это невозможно?И я хочу сделать это, не импортируя какой-либо класс модели вообще, package1 должен быть полностью независимым.
Мне интересно, какой из них лучший, и есть ли лучший способ сделать то, чего я пытаюсь достичь?