我写了一个扩展的自定义视图RelativeLayout.我的视图有文本,所以我想使用标准,android:text 而不需要在每次使用自定义视图时指定<declare-styleable>和不使用自定义命名空间xmlns:xxx.
这是我使用自定义视图的xml:
<my.app.StatusBar
android:id="@+id/statusBar"
android:text="this is the title"/>
Run Code Online (Sandbox Code Playgroud)
如何获取属性值?我想我可以得到android:text属性
TypedArray a = context.obtainStyledAttributes(attrs, ???);
Run Code Online (Sandbox Code Playgroud)
但???在这种情况下是什么(在attr.xml中没有样式)?
假设我们有一个项目集合:
class Item {
public String title;
public int price;
}
List<Item> list = getListOfItems();
Run Code Online (Sandbox Code Playgroud)
我想从Guava库中获得一个具有最大价格的物品(订购,我推测).我的意思是类似于这个Groovy代码:
list.max{it.price}
Run Code Online (Sandbox Code Playgroud)
我怎么做?效率如何?
Iterables提供了两种方法getLast
public static <T> T getLast(Iterable<T> iterable);
public static <T> T getLast(Iterable<T> iterable, @Nullable T defaultValue);
Run Code Online (Sandbox Code Playgroud)
但只有一个 getFirst
public static <T> T getFirst(Iterable<T> iterable, @Nullable T defaultValue);
Run Code Online (Sandbox Code Playgroud)
是否存在破坏对称性的设计/实施原因?
根据番石榴的例子,我看到我一直在寻找解决问题的优雅方案.具体来说,我喜欢这种方式Futures.addCallback(ListenableFuture, FutureCallback) ,但是我希望能够在调用FutureCallback之前的时间长度上设置超时.最佳如果违反超时只会导致调用FutureCallback的失败条件会很好.
番石榴有没有这样的东西?是不是不建议尝试将超时与回调相结合?
编辑:包括引导我到这一点的代码示例.显然,我删除了有意义的位以获得最小的例子.
@Test
public void testFuture()
{
Callable<Boolean> callable = new Callable<Boolean>()
{
@Override
public Boolean call() throws Exception
{
while(true);
}
};
ListenableFuture<Boolean> callableFuture = MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor()).submit(callable);
Futures.addCallback(callableFuture, new FutureCallback<Boolean>()
{
@Override
public void onFailure(Throwable arg0)
{
System.out.println("onFailure:"+arg0);
}
@Override
public void onSuccess(Boolean arg0)
{
System.out.println("onSuccess:"+arg0);
}
});
try
{
callableFuture.get(1000, TimeUnit.MILLISECONDS);
}catch(Throwable t)
{
System.out.println("catch:"+t);
}
}
Run Code Online (Sandbox Code Playgroud)
此代码仅打印catch:java.util.concurrent.TimeoutException.
考虑这个打印出一些设备类型统计数据的例子.("DeviceType"是一个带有十二个值的枚举.)
Multiset<DeviceType> histogram = getDeviceStats();
for (DeviceType type : histogram.elementSet()) {
System.out.println(type + ": " + histogram.count(type));
}
Run Code Online (Sandbox Code Playgroud)
以频率顺序打印不同元素的最简单,最优雅的方法是什么(最常见的类型是第一种)?
随着快速浏览一下Multiset界面,有一个为这个没有现成的方法,并没有番石榴的的Multiset实现(HashMultiset,TreeMultiset,等)似乎自动保持要素频率有序无论是.
@RequestMapping(value = "/contact.html", method = RequestMethod.POST)
public final ModelAndView contact(
@RequestParam(value = "name", required = false) Optional<String> name) {
Run Code Online (Sandbox Code Playgroud)
如果不需要参数值且没有发送任何内容,Spring如何@RequestMapping处理Optional来自Guava库的内容?
那将会:
nullOptional.absent()可以Optional.fromNullable(T)用来接受请求吗?
我有一个对象集合,我想分成两个集合,其中一个传递一个谓词,其中一个未通过谓词.我希望有一个Guava方法可以做到这一点,但它们最接近的是过滤器,它不会给我另一个集合.
我想图像方法的签名将是这样的:
public static <E> Pair<Collection<E>, Collection<E>> partition(Collection<E> source, Predicate<? super E> predicate)
Run Code Online (Sandbox Code Playgroud)
我意识到这对我自己的编码速度非常快,但我正在寻找一种能够实现我想要的现有库方法.
通过https://github.com/google/guava/wiki/FunctionalExplained查看我看到像transform这样的操作,它将转换列表但保持相同的基数.如何执行导致不同基数的转换?例如(伪代码)List(1,2,3).transform(i => List(i, i))- >List(1,1,2,2,3,3)
我正在设计一个新的Java Web应用程序的后端,我正在尝试决定是否使用事件总线; 特别是番石榴EventBus.
大多数服务器端请求都是同步的:即,用户正在请求数据并需要在几秒钟内响应.但是,也有相当多的请求可以是异步的,并且在客户端是"一劳永逸".只要它们最终被处理,如果需要2秒钟处理或2小时,客户可以更少关心.
对于这些异步请求,我计划让servlet监听映射的URL,将请求发布到队列.然后,消费者将每个请求出列并将其路由到适当的处理程序.这是EventBus可能会或可能不会发挥作用的地方.将请求路由到正确的处理程序的业务逻辑非常复杂.通常情况下,骆驼路线将是完美的解决方案.在我的用例中,我想知道我是否可以将一堆"处理器"(事件处理程序)连接到同一个事件总线,然后让每个事件相互触发和接收事件,直到最终结果为止.产生的.
我想说我已经探索过使用Apache Camel,并且我相信Camel是这里工作的合适工具.可悲的是,由于这个问题范围之外的原因,我不打算使用它.所以我开始想起类似Camel的解决方案,这就是我到达Guava的方式EventBus.但它可能不是一个合适的替代品.
我想我正在寻找Event Bus模式解决的问题分类,然后我需要确定这是否符合我的用例.
我想在数据库中创建表的转储文件.所以数据库 - > king,tablename - > castle所以我想要做的是创建一个转储文件..然后下一部分是在我的本地主机中导入它.数据库名称 - > king_local.关于如何去做的任何想法!谢谢
guava ×8
java ×7
collections ×2
android ×1
api-design ×1
attributes ×1
dump ×1
event-bus ×1
iterable ×1
multiset ×1
mysql ×1
nullable ×1
optional ×1
scala ×1
spring ×1
spring-mvc ×1
workbench ×1