java - 界面中需要澄清

标签 java interface

我知道接口(interface)只能在其内部实现静态和最终值。但是是否有任何漏洞可以让我更改值 使用接口(interface)的变量?这个问题可能很荒谬,但我很无奈,因为这是我的要求。这是示例代码..

public interface I {
    int val = 1;  
    int changeValue();

}
<小时/>
Class A implements I{
    int changeValue(){
        val = 2 ; 
        return 0;
    }
}

如何使用接口(interface)更改“val”的值? 我可以做类似的事情:

val = changeValue();

有什么东西可以在界面中实现此功能吗?

最佳答案

你不能。接口(interface)变量默认为 staticfinal

final 变量是在对象生命周期内不能更改的变量。

static 变量是一个类变量 - 这意味着该类(或本例中为接口(interface))的所有实例只有一个值。

因此 - 您只有一个 I.x 值 - 并且该值无法更改。

<小时/>

您可能想要做的是在界面中定义方法:

int getVal();
void setVal(int val);

并让实现类实现方法 - 这样您就可以通过 getVal()setVal() 方法使用变量。

关于java - 界面中需要澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12983576/

相关文章:

java - 如何在屏幕超时后保持 android wear 应用程序打开

java - java中抽象类和接口(interface)的具体使用

delphi - 为什么TForm的_release不调用析构函数?

.net - Entity Framework 导航属性接口(interface)类型

java - 为什么我的 if else 语句(即?: ) does not work?

java - foo.jar 未标记为可执行文件

java - 如何使用 lambda 在 Java 中实现两个抽象方法?

matlab - 在 Matlab 用户界面中跨多个 m 文件搜索文本

java - 如何将另一个项目中的应用程序用作库?

java - 使用 STS 模板项目创建新的 Spring MVC 项目时出现奇怪的行为,URL 不正确,我必须重建项目