gpt4 book ai didi

java - 有没有办法使用传递的类对象的方法?

转载 作者:行者123 更新时间:2023-12-02 01:34:31 25 4
gpt4 key购买 nike

我正在尝试重用作用于类对象的代码部分,我有多个类,它们大部分具有 90% 相同的方法名称,现在我有一堆 if else 语句,其中第一行是unique 和其余的都是相同的,有没有办法我可以传递对象并使用它的方法?

我尝试只获取重复的代码并将其放入我的 Activity 中的方法中,但是无论我如何重新初始化对象,方法名称都永远不会被识别例如,我会创建一个名为 Lookupclass(Object LookupObject) 的方法,并将非特定代码粘贴到其中,就在该代码之前,我尝试了许多不同的尝试,从传递的对象中创建对象,大多数人都会识别代码中的新对象,但是所有方法(例如 lookup.loadClass(fileToLookup)) 显示为无法识别

if (databaseFolder.equals(CustomerFolder)) {
CustomerClass lookup = new CustomerClass();
//region nonspecific code on object
lookup.loadClass(fileToLookup);
String[] tempString = new String[lookup.positionIds.length * 2];
String[] tempExpandString = new String[lookup.positionIds.length];
String[] classData = lookup.getClassData();
String[] positionNames = lookup.positionNames;

for (int i = 0; i < lookup.positionIds.length; i++) {
tempString[i * 2] = positionNames[i];
if (lookup.positionExpandableToMultipleBoolean[i] && classData[i] != null && classData[i].contains(",")) {
tempString[i * 2 + 1] = "Multiple- Click to Expand";
tempExpandString[i] = classData[i];
} else if (lookup.positionExpandableToMultipleBoolean[i]) {
tempString[i * 2 + 1] = lookup.expandablePositionIdToName(i, classData[i]);
tempExpandString[i] = classData[i];

} else if(classData[i] == null){
tempString[i * 2 + 1] = " ";
} else
tempString[i * 2 + 1] = classData[i];
}
list = tempString;
filesToExpand = tempExpandString;
//endregion

} else if (databaseFolder.equals(AddressFolder)) {
AddressClass lookup = new AddressClass();
//region nonspecific code on object
lookup.loadClass(fileToLookup);
String[] tempString = new String[lookup.positionIds.length * 2];
String[] tempExpandString = new String[lookup.positionIds.length];
String[] classData = lookup.getClassData();
String[] positionNames = lookup.positionNames;

for (int i = 0; i < lookup.positionIds.length; i++) {
tempString[i * 2] = positionNames[i];
if (lookup.positionExpandableToMultipleBoolean[i] && classData[i] != null && classData[i].contains(",")) {
tempString[i * 2 + 1] = "Multiple- Click to Expand";
tempExpandString[i] = classData[i];
} else if (lookup.positionExpandableToMultipleBoolean[i]) {
tempString[i * 2 + 1] = lookup.expandablePositionIdToName(i, classData[i]);
tempExpandString[i] = classData[i];

} else if(classData[i] == null){
tempString[i * 2 + 1] = " ";
} else
tempString[i * 2 + 1] = classData[i];
}
list = tempString;
filesToExpand = tempExpandString;
//endregion

}

最佳答案

实现此目的的一个好方法是通过接口(interface)。您可以定义一个名为 Lookup 的接口(interface),其中定义了通用方法签名。然后让您的 CustomerClass、AddressClass 等实现该接口(interface)。这将允许您执行以下操作:

Lookup lookup = null;
if (databaseFolder.equals(CustomerFolder)) {
lookup = new CustomerClass();
} else {
lookup = new AddressClass();
}
lookup.loadClass(fileToLookup);
//Rest of common code

关于java - 有没有办法使用传递的类对象的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55427851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com