在Java中,实现一个函数根据用户的选择返回不同的类型可以通过使用泛型和接口来实现。以下是一个基本的示例,展示了如何根据用户的选择返回不同类型的对象。
public interface Result {
void display();
}
public class StringResult implements Result {
private String value;
public StringResult(String value) {
this.value = value;
}
@Override
public void display() {
System.out.println("String Result: " + value);
}
}
public class IntegerResult implements Result {
private int value;
public IntegerResult(int value) {
this.value = value;
}
@Override
public void display() {
System.out.println("Integer Result: " + value);
}
}
public class ResultFactory {
public static <T extends Result> T getResult(String choice, Object data) {
if ("string".equalsIgnoreCase(choice)) {
return (T) new StringResult((String) data);
} else if ("integer".equalsIgnoreCase(choice)) {
return (T) new IntegerResult((Integer) data);
} else {
throw new IllegalArgumentException("Unknown choice");
}
}
}
public class Main {
public static void main(String[] args) {
Result stringResult = ResultFactory.getResult("string", "Hello, World!");
stringResult.display();
Result integerResult = ResultFactory.getResult("integer", 123);
integerResult.display();
}
}
ClassCastException
。解决方法是确保传入的数据类型正确,并在必要时进行类型检查。通过上述方法,你可以实现一个灵活且类型安全的函数,根据用户的选择返回不同的类型。
领取专属 10元无门槛券
手把手带您无忧上云