如何将字符串转换为另一种类型以在函数中使用
How to turn String into another Type to use in a Function
我有一个字符串来自网络。
该字符串匹配一个变量。
变量是 FrameLayout 类型。
我有一个用 FrameLayout 调用的函数。
如何获取接受传入字符串的函数
@InjectView (R.id.printer45)
FrameLayout printer_45;
public static final List<String> RED = Arrays.asList("printer_45")
redLabelIcon(FrameLayout fL){
***create red icon***
}
String printer = data.getString("Printer")
String status = data.getString("Status")
**turn printer into frameLayout, somehow**
if (RED.contains(status)){
redLabelIcon(printer)
}
我想做的是什么,以便我研究它。
您要实现的目标称为 映射:
Map<String, FrameLayout> mapping = new HashMap<>();
mapping.put("printer_45", printer_45);
以相同的方式,您可以在 String 类型的键下将任意数量的布局放入该地图。稍后您检索布局:
String printer = data.getString("Printer");
FrameLayout layout = mapping.get(printer);
你正在做的叫做 "mapping" - 例如,通常你会在哈希表中看到 "key" / "value" 对。或者您可以使用 Map
或使用 case
语句或 "else/if".
在你的例子中,List
对象没有 "key" 只有 "value" 所以它不起作用。您需要能够将像 "RED" 这样的 "key" 与像 "printer_45".
这样的值关联起来
如果您使用 Hashtable
,则不要使用 "RED" 作为您的对象名称,使用 "printers" 之类的名称,然后将 "printer_45" 作为 "value" 和 "RED" 作为键。您也可以使用一个 Map
或两个 Arrays
(一个 "key" 和一个 "value")或许多其他方式。
您可以使用 FactoryMethod 模式来获得
public static FrameLayout getFrameLayout(String layoutName){
if("layout1".equals(layoutName)){
return FrameLayout1;
} else if (...){
return FrameLayout2
}
....
}
我有一个字符串来自网络。
该字符串匹配一个变量。 变量是 FrameLayout 类型。
我有一个用 FrameLayout 调用的函数。
如何获取接受传入字符串的函数
@InjectView (R.id.printer45)
FrameLayout printer_45;
public static final List<String> RED = Arrays.asList("printer_45")
redLabelIcon(FrameLayout fL){
***create red icon***
}
String printer = data.getString("Printer")
String status = data.getString("Status")
**turn printer into frameLayout, somehow**
if (RED.contains(status)){
redLabelIcon(printer)
}
我想做的是什么,以便我研究它。
您要实现的目标称为 映射:
Map<String, FrameLayout> mapping = new HashMap<>();
mapping.put("printer_45", printer_45);
以相同的方式,您可以在 String 类型的键下将任意数量的布局放入该地图。稍后您检索布局:
String printer = data.getString("Printer");
FrameLayout layout = mapping.get(printer);
你正在做的叫做 "mapping" - 例如,通常你会在哈希表中看到 "key" / "value" 对。或者您可以使用 Map
或使用 case
语句或 "else/if".
在你的例子中,List
对象没有 "key" 只有 "value" 所以它不起作用。您需要能够将像 "RED" 这样的 "key" 与像 "printer_45".
如果您使用 Hashtable
,则不要使用 "RED" 作为您的对象名称,使用 "printers" 之类的名称,然后将 "printer_45" 作为 "value" 和 "RED" 作为键。您也可以使用一个 Map
或两个 Arrays
(一个 "key" 和一个 "value")或许多其他方式。
您可以使用 FactoryMethod 模式来获得
public static FrameLayout getFrameLayout(String layoutName){
if("layout1".equals(layoutName)){
return FrameLayout1;
} else if (...){
return FrameLayout2
}
....
}