我试图理解ZXing的CharacterSetECI.java在其静态初始化器中正在做什么
具体来说,我不知道这是怎么回事:
private static final Map<Integer,CharacterSetECI> VALUE_TO_ECI = new HashMap<>();
private static final Map<String,CharacterSetECI> NAME_TO_ECI = new HashMap<>();
static {
for (CharacterSetECI eci : values()) {
for (int value : eci.values) {
VALUE_TO_ECI.put(value, eci);
}
NAME_TO_ECI.put(eci.name(), eci);
for (String name : eci.otherEncodingNames) {
NAME_TO_ECI.put(name, eci);
}
}
}
private final int[] values;
Run Code Online (Sandbox Code Playgroud)
注意在第一个foreach中使用values(),方法values()没有在类中的任何地方定义.最接近它的是它下面定义的int数组值,但我认为我们可以同意它肯定不包含CharacterSetECI类型对象.
当我尝试在新类中仅键入这段代码(创建构造函数,最终实例变量数组和静态初始化程序)时,Eclipse会抱怨values()未定义,但是当我将整个代码复制到新类时, Eclipse只是抱怨几种类型无法解析,但是values()得到了一个传递.我试图按住Ctrl键并单击值()来查看它引用的内容,但它不可点击.
注意:
如果您不信任链接,则此类可在ZXing的3.1.0版源代码中获得,可在mavencentral中的com.google.zxing.common包中找到.
我正在尝试创建一个 VBA 函数,该函数接受一个单元格作为参数,并使用各种 Range.Offset 从那里开始工作。该函数将在工作表单元格中调用。为了进行测试,我使用这个简单的脚本:
Public Function testPublic(targetCell As Range) As Boolean
targetCell.Offset(0, 3).Value2 = "Test is successful!"
testPublic = True
End Function
Run Code Online (Sandbox Code Playgroud)
为了查看是否可以使单元格引用正常工作,我传递了简单的引用,例如 C5,但我只得到#VALUE!错误。不知道这有什么问题。
尝试将 Range 更改为 Variant,仍然不起作用