gpt4 book ai didi

java - 如何在没有类型的变量上调用函数?

转载 作者:行者123 更新时间:2023-12-02 09:35:27 25 4
gpt4 key购买 nike

我需要为我的 Java 桌面应用程序设置“主题”。为此,我需要根据用户输入运行不同的 Java 类。为此,我声明了一个对象类型的变量:

public Object theme;

然后我在函数中设置变量类型:

//get theme
String theme_selector = prefs.get("theme", "default");

//choose correct one
switch(theme_selector){
case "modern 2d": theme = new Modern("2d"); break;
case "modern 3d": theme = new Modern("3d"); break;
case "circles" : theme = new Circles(); break;
default:
theme = new Default();
break;

该函数在其他函数之前被调用。稍后在程序中,在另一个函数中,我需要调用 theme.draw()。该主题的每个类都有一个绘制函数,但我仍然收到错误,因为 IDE 仍然将“主题”视为对象类型的变量。我该如何解决这个问题?

提前谢谢

最佳答案

您创建一个由 ModernCirclesDefault 以及所有方法实现的接口(interface),然后您就拥有了

public ThemeInterface theme;

而不是公共(public)对象主题;并且它会起作用。

例如

public interface ThemeInterface {
public void draw();
}

public class Modern implements ThemeInterface {
// implement draw here
public void draw() {
// magic here
}
}

关于java - 如何在没有类型的变量上调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57556640/

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