![](/img/trans.png)
[英]How to declare class fields that have different types depending on the constructor parameters in Java
[英]Change a class constructor depending on other parameters
我正在为我的Java应用程序制作UML图,但遇到以下疑问:
我有一个名为Information的类,它的属性取决于它是哪种Node
。
例如:
如果Node = TrafficLight
,则信息将包含灯光的颜色。
但是,如果Node = Signal
,它将包含最大速度。
如何在UML和代码中实现呢?
谢谢大家的回答,我将尝试其中的一些,并将发布解决方案!
我将假定Node是Information对象的子级。 在这种情况下,您需要为Node可能产生的每个结果提供一个对象。 我能解释的最好方法是...
package.name.Node
|
|_package.name.Node.Information
|
|_Information.TrafficLight(String color)
|
|
|_Information.Signal(Double speed)
希望对您有所帮助。 请记住,我已经很长时间没有使用Java编程了,但是我偶然遇到了这种情况,并记得在大学里做过类似的事情^ _ ^; 因为它只是UML,所以您应该能够从他的项目中了解到您的项目的去向,并假设我不只是自欺欺人。 就像我说的,只是想提供帮助。
您可以在Java中的构造函数上调用方法重载。
public class myClass{
public myClass(){
//do something
}
public myClass(String someInput){
this.someInput=someInput;
}
}
那就是我最终所做的:
创建一个名为addNode(nodeType)的方法
addNode(nodeType){
switch (nodeType){
case trafficlight:
new TrafficLight //call one constructor
case signal:
new Signal //call other constructor
}
}
谢谢你的帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.