如何在 JAVA 中为所有相似类型的 bean 编写通用代码
Posted
技术标签:
【中文标题】如何在 JAVA 中为所有相似类型的 bean 编写通用代码【英文标题】:How to write common code for all similar type of beans in JAVA 【发布时间】:2021-10-13 17:12:39 【问题描述】:我的 Vehicle 类中有多种类型的汽车,所有汽车都有各自的属性和 getter/setter。我有填充的 Vehicle 类对象,其中包含所请求的特定类型汽车的值。我希望获得这些值并以通用方式将它们存储在单独的 bean 中。请查看以下代码库了解更多详情。
public class Cars
private BMW bmw;
private Hyundai hyundai;
private TATAMotors tataMotors;
private Ferrari ferrari;
// getters and setters
public class BMW
private String carid;
private long price;
private String carName;
private double tax;
//getters and setters
我有同类型的其他豆子,比如法拉利、现代等。
我希望为所有类型的汽车编写一个通用代码,而不是通过 cars.getBMW().getCarId()
或 cars.getFerrari().getCarId()
将这些值存储到另一个 bean。
我在运行时的单个请求中只命中了一种类型的汽车。请求可以包含任何单一类型的汽车,并且不依赖于汽车类型或汽车名称,我只想执行一个通用代码。
请指教。
【问题讨论】:
【参考方案1】:首先,当涉及到面向对象的编程时,您正在做的事情走向错误的方向。
您正在使用类Cars
作为数据容器。 Java 有很多数据容器可以用于此目的,例如array
、ArrayList<>
等。
你可以做的是使用继承。
根据您的用例创建一个类 Car
或 Vehicle
...
public class Car
// Put all common attributes and functions of a car here!
private String carId;
private long price;
private String carName;
private double tax;
public void horn()
System.out.println("BEEEEP");
从Car
类继承。
public class BMW extends Car
// Put specific attributes of BMW here, or if there aren't any, just leave it empty
然后在每个子类上使用汽车的通用属性。
BMW bmw = new BMW();
bmw.horn();
【讨论】:
以上是关于如何在 JAVA 中为所有相似类型的 bean 编写通用代码的主要内容,如果未能解决你的问题,请参考以下文章
java - 如何在java中为mysql的JSON数据类型使用准备好的语句?