我的代码中有一个错误,我正在尝试修改一个真正是从客户端程序/程序员传入的Guava ImmutableList的List.
测试此问题的最佳方法是什么,而不是在.add()失败时等待异常?
我刚刚开始使用Java,C,c ++等多年的python.我有一长串文件/模块,每个文件/模块都包含一个我想动态调用的主要方法.对于每个关键字,我有一个名为get_foo的.py文件,并且在每个get_foo.py中都有一个foo方法.所以我想传入命令名"foo"并执行方法get_foo.foo()
我真的不想用丑陋的if/then/else块来做这件事
sections = [ "abstract", "claim", "drawing", "examiner"]
command = "claim"
Run Code Online (Sandbox Code Playgroud)
我想要什么样的东西
exec("get_" + command + "." + command)
Run Code Online (Sandbox Code Playgroud)
但我真的不知道exec/eval/etc的哪个区域可以做到这一点.
当我运行此代码片段时,不会采取任何一方.
if (Boolean.class.isAssignableFrom(boolean.class)) {
uLog.error("Boolean is => boolean");
}
if (boolean.class.isAssignableFrom(Boolean.class)) {
uLog.error("boolean is <= Boolean");
}
Run Code Online (Sandbox Code Playgroud)
具体来说,我正在尝试使用反射测试参数类型:
Type[] pType = m.getGenericParameterTypes();
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚布尔参数的正确测试.
我无法找到一个正确的方法来获得一个Guava Optional的默认构造函数参数.以下代码不能使用Java 1.6进行编译
public class ShoppingCart implements Serializable {
private final Optional<DiscountCoupon> discountCoupon;
public ShoppingCart() {
this(Optional.absent());
}
public ShoppingCart(Optional<DiscountCoupon> dc) {
Preconditions.checkNotNull(dc);
if (dc.isPresent()) {
Preconditions.checkArgument(dc.get().getPennyDiscount() != 0 ||
dc.get().getPercentDiscount() != 0);
}
discountCoupon = dc;
}
Run Code Online (Sandbox Code Playgroud)
报告的错误是:
/Users/pfarrell/sandbox//com/wayfinderdigital/struct/ShoppingCart.java:29: cannot find symbol
symbol : constructor ShoppingCart(com.google.common.base.Optional<java.lang.Object>)
location: class com.wayfinderdigital.struct.ShoppingCart
this(Optional.absent());
Run Code Online (Sandbox Code Playgroud) 我只是在学习python,似乎犯了一个微不足道的错误.使用此代码,使用构造函数来获取模式获取和错误.
"cit_ref = Patterns(patstring,3)TypeError:这个构造函数不带参数"
import re
class Patterns:
"""A simple struct to hold our regex """
def __init__(self, pat, bodynumArg=2):
self.pat = pat
self.bodynum = bodynumArg
self.reg = re.compile(self.pat, re.M+re.S)
patstring = r'<((us-)?references-cited)>(.*?)</\1>'
cit_ref = Patterns( patstring, 3)
Run Code Online (Sandbox Code Playgroud) 我看不到任何方法来构建一个使用括号来控制逻辑顺序的谓词.有吗?
说我想做像Predicate <= mumble和(foo或baz)这样的事情
一个简单的Predicates.and或一个Predicates.or没有相当于说"foo或baz"和mumble.
这可能吗?
我喜欢使用Guava的Iterables过滤器.但是一个常见的代码片段如下所示:
List foo = Lists.newArrayList(Iterables.filter(someCollection, somePredicate));
if (foo.isEmpty) {
// do empty
} else {
int count = foo.size(); // do non-empty
}
Run Code Online (Sandbox Code Playgroud)
这是浪费,因为我真的不需要构建"foo"列表,我只需要知道它是否为空,并获得元素数量的计数.
我想知道以下的最佳实践:
1)如何在isEmpty()不浪费时间的情况下将列表构建到内存中进行测试
2)有没有办法在不迭代所有条目的情况下获取大小?
3)如果#2没有非迭代解决方案,那么迭代并计算++会更好吗?