java - 如何在不使用任何导入的情况下根据条件在同一类中实现两个接口
问题描述
我想知道当一个类中有两个接口时,如何一次使用一个接口。例如,当 Cube 不是 fixed() 时,我可以通过接口属性更改它的长度。但是,一旦它被修复它只能访问接口计算哪个是volume()或area()。
public interface properties <T> {
T size(int length);
T fixed();
}
public interface calculate{
int volume();
int area();
}
public class Cube implements properties, calculate{
private final int length;
public Cube(int length){this.length = length;}
}
解决方案
如果您不在Cube
类型级别表示 a 的固定性,那么您的代码将难以维护。
我会有一个可变的CubeBuilder
,它只有:
class CubeBuilder {
private int length;
public void setLength(int newLength) { this.length = newLength; }
public Cube build() { return new Cube(length); }
}
然后是Cube
具有volume
和的不可变对象area
。
否则,当您处理程序时,您将永远无法确定可以将非固定传递给哪些方法Cube
,以及给定的Cube
引用是固定的还是非固定的。
推荐阅读
- neo4j - Neo4J (Cypher) 查询以查找所有不遵循模式的路径
- c# - 在 ASP.NET Core 3.0 MVC 中通过 ViewData 多选发送数据
- java - 用一个循环 foreach 两个不同的对象
- javascript - 用 Node Js、Socket.Io 制作机器人
- expo - 安装依赖项后是否可以发布博览会?
- javascript - 当我想取消归档(谷歌表)时,归档来自不同工作表的行并将它们删除到初始位置(到初始工作表)
- windows-installer - 如果为 msiexec TARGETDIR 属性设置的文件夹被永久删除,我该如何安装补丁
- c++ - 比较模板函数中的类字符串类型
- python - 使用 for 循环变量命名文件
- c# - C# JSON 如何读取具有未知父名的特定值