【发布时间】:2021-10-06 18:33:04
【问题描述】:
鉴于['long', 'int', 'short'] 等数据类型列表,如何选择可以处理任何给定类型的任何值的最合适的数据类型?
在这种情况下,最佳数据类型是long。所以返回long。我已经有办法(蛮力),但我正在寻找正确的方法来解决它。建议我最合适的设计。
以下是我目前的解决方案:
static Map<String, List<String>> map = new HashMap<>();
static {
map.add("long", Lists.newArrayList("long", "int", "short", "byte"));
map.add("int", Lists.newArrayList("int", "short", "byte"));
.
.
}
public void String suitableDataType(List<String> input) {
if (input.contains("long") && input.stream().allMatch(t -> map.get("long").contains(t)))
return "long";
else if(..int..)
return "int";
.
.
.
else
return "string";
}
基本上构建一个数据类型映射到它可以支持的所有可能的数据类型。
并按照input中long, int, short的顺序手动检查,并使用map检查是否支持input中的所有数据类型并返回相应的类型。
但我对这种方法并不满意。所以寻找解决这个问题的最佳方法。
谢谢。
【问题讨论】:
-
您需要说明您对这种方法不满意的原因。
标签: java oop design-patterns enums