我试图在AngularJS指令中使用过滤器,但不确定如何做到这一点.从邮件列表上的一些信息看来,您应该能够注入$ filter并使用它,但我不确定如何/在何处调用它.
我的指令目前看起来像这样:
myApp.directive('fancyDisplay', ['$filter', function($filter) {
return {
scope: {
'fancyDisplay': '='
},
template: "<div ng-repeat='datum in fancyDisplay | filter:tagFilter'>{{datum.name}}</div>"
};
}]);
Run Code Online (Sandbox Code Playgroud)
虽然filter:tagFilter不起作用.我该如何过滤指令中的数据?
JSfiddle可在http://jsfiddle.net/VDLqa/4/获得, 并提前感谢任何回复.
我正在尝试使用ComparisonChain在类中实现compareTo()但是该类包含List而compare()不接受它们,因为List没有实现Comparable.关于如何使这项工作的任何想法?
代码子集看起来像这样:
public class User() {
String name;
List<String> emails;
...
public int compareTo(User that) {
return ComparisonChain().start()
.compare(this.name, that.name)
.compare(this.emails, that.emails) // Fails on this line
.result();
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个方法,它接受一个Collection<Foo> foos可能为NULL 的参数.我希望最终得到一个输入的本地副本作为ImmutableSet.现在我的代码看起来像这样:
if (foos == null)
{
this.foos = ImmutableSet.of();
}
else
{
this.foos = ImmutableSet.copyOf(foos);
}
Run Code Online (Sandbox Code Playgroud)
有更清洁的方法吗?如果foos是一个简单的参数我可以做类似的事情,Objects.firstNonNull(foos, Optional.of())但我不确定是否有类似处理集合的东西.
我有一些在超类中具有一组共享属性的对象:
public Superclass {
int id;
String name;
...
}
Run Code Online (Sandbox Code Playgroud)
我有从超类继承的子类,但每个子类都需要自己完整描述的@JsonCreator
public Subclass1 extends Superclass {
String color;
@JsonCreator
public Subclass1(@JsonProperty("id") int id,
@JsonProperty("name") String name,
@JsonProperty("color") String color)
{
super(id, name);
this.color = color;
}
}
public Subclass2 extends Superclass {
int height;
@JsonCreator
public Subclass1(@JsonProperty("id") int id,
@JsonProperty("name") String name,
@JsonProperty("height") int height)
{
super(id, name);
this.height = height;
}
}
Run Code Online (Sandbox Code Playgroud)
杰克逊(2.x)有没有办法从超类中提取有关预期JSON字段的信息并避免这种重复?
我正在使用带有AngularJS应用程序的Restangular并从一个简单的CRUD应用程序开始.我遇到的问题是了解如何将新项目添加到预先存在的集合中.
在控制器内,预先存在的集合在服务中获得并在范围内可用:
$scope.data.items = Restangular.all('items');
Run Code Online (Sandbox Code Playgroud)
通过表单创建一个新项目并在服务器上创建:
$scope.data.items.post(newitem);
Run Code Online (Sandbox Code Playgroud)
我想将这个新项目添加到预先存在的集合中但不确定如何.该restangular样品只是调用Restangular.all('items')一次,因为所有的信息存在,这似乎非常浪费.理想情况下,我想做这样的事情:
$scope.data.items.post(newitem).then(function(response) {
$scope.data.items.push(newitem);
});
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我应该如何添加到集合中,而不是每次创建新项目时都重新获取整个集合?
我有一个非常简单的Jackson代码来反序列化嵌套的JSON对象:
public class MapTest
{
public static void main(String ... args) throws Exception
{
final String ser = "{\"nested\":{\"k1\":\"v1\",\"k2\":\"v2\",\"k3\":\"v3\"}}";
final Map<String, Object> deser = new ObjectMapper().readValue(ser, new TypeReference<TreeMap<String, Object>>(){});
System.out.println("Class of deser's nested object is " + deser.get("nested").getClass().getSimpleName());
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我获得以下输出:
Class of deser's nested object is LinkedHashMap
Run Code Online (Sandbox Code Playgroud)
但是我想将嵌套映射反序列化为输出TreeMap而不是LinkedHashMap输出.我如何告诉杰克逊TreeMap在反序列化时默认使用?
通过文档阅读我发现的最接近的事情是能够通过addAbstractTypeMapping()模块为抽象类型定义具体类,但我尝试了每个超类和实例LinkedHashMap尝试这样做,似乎没有任何工作.
这是使用Jackson 2.4.2,虽然如果有一种方法可以做到这一点,需要更高的版本,我将能够升级.
我有一个google-services.json包含API密钥的文件,其中包括谷歌地图服务.Google地图需要以下信息AndroidManifest.xml:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="KEY_GOES_HERE" />
Run Code Online (Sandbox Code Playgroud)
我可以使用Java访问Java中的信息R.string.google_api_key,因为构建过程会根据https://developers.google.com/android/guides/google-services-plugin将JSON文件转换为资源,但有没有办法可以参考清单文件中的密钥?
java android google-maps android-manifest google-play-services
我正在尝试使用Espresso.但我得到了这个错误,如果我错过了一些代码,我就没有.
任何想法都将受到高度赞赏.
错误日志:
java.lang.NullPointerException: No instrumentation registered. Must run under a registering instrumentation.
at com.google.android.apps.common.testing.testrunner.util.Checks.checkNotNull(Checks.java:28)
at com.google.android.apps.common.testing.testrunner.InstrumentationRegistry.getInstance(InstrumentationRegistry.java:23)
at com.google.android.apps.common.testing.ui.espresso.base.BaseLayerModule.provideTargetContext(BaseLayerModule.java:50)
at com.google.android.apps.common.testing.ui.espresso.base.BaseLayerModule$$ModuleAdapter$ProvideTargetContextProvidesAdapter.get(BaseLayerModule$$ModuleAdapter.java:101)
at com.google.android.apps.common.testing.ui.espresso.base.BaseLayerModule$$ModuleAdapter$ProvideTargetContextProvidesAdapter.get(BaseLayerModule$$ModuleAdapter.java:85)
at com.google.android.apps.common.testing.ui.espresso.base.DefaultFailureHandler$$InjectAdapter.get(DefaultFailureHandler$$InjectAdapter.java:53)
at com.google.android.apps.common.testing.ui.espresso.base.DefaultFailureHandler$$InjectAdapter.get(DefaultFailureHandler$$InjectAdapter.java:20)
at com.google.android.apps.common.testing.ui.espresso.base.BaseLayerModule$$ModuleAdapter$ProvideFailureHanderProvidesAdapter.get(BaseLayerModule$$ModuleAdapter.java:555)
at com.google.android.apps.common.testing.ui.espresso.base.BaseLayerModule$$ModuleAdapter$ProvideFailureHanderProvidesAdapter.get(BaseLayerModule$$ModuleAdapter.java:519)
at com.google.android.apps.common.testing.ui.espresso.base.BaseLayerModule$FailureHandlerHolder$$InjectAdapter.get(BaseLayerModule$FailureHandlerHolder$$InjectAdapter.java:53)
at com.google.android.apps.common.testing.ui.espresso.base.BaseLayerModule$FailureHandlerHolder$$InjectAdapter.get(BaseLayerModule$FailureHandlerHolder$$InjectAdapter.java:20)
at dagger.internal.Linker$SingletonBinding.get(Linker.java:327)
at com.google.android.apps.common.testing.ui.espresso.base.BaseLayerModule$$ModuleAdapter$ProvideFailureHandlerProvidesAdapter.get(BaseLayerModule$$ModuleAdapter.java:505)
at com.google.android.apps.common.testing.ui.espresso.base.BaseLayerModule$$ModuleAdapter$ProvideFailureHandlerProvidesAdapter.get(BaseLayerModule$$ModuleAdapter.java:469)
at com.google.android.apps.common.testing.ui.espresso.ViewInteraction$$InjectAdapter.get(ViewInteraction$$InjectAdapter.java:65)
at com.google.android.apps.common.testing.ui.espresso.ViewInteraction$$InjectAdapter.get(ViewInteraction$$InjectAdapter.java:20)
at dagger.ObjectGraph$DaggerObjectGraph.get(ObjectGraph.java:251)
at com.google.android.apps.common.testing.ui.espresso.Espresso.onView(Espresso.java:58)
at com.example.espresso.TestExample.testCommand(TestExample.java:28)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1590)
Run Code Online (Sandbox Code Playgroud)
TestExample.java
public class TestExample extends ActivityInstrumentationTestCase2<ClickActivity>{
public TestExample() {
super(ClickActivity.class);
// TODO …Run Code Online (Sandbox Code Playgroud) 我知道我可以通过执行以下操作向D3 JSON请求添加标头:
d3.json("http://localhost:8080/data")
.header("Application-ID", "1")
Run Code Online (Sandbox Code Playgroud)
但是在使用队列延迟时如何添加此标头?
queue()
.defer(d3.json, "http://localhost:8080/data")
Run Code Online (Sandbox Code Playgroud) 我正在定义一个Joda间隔如下:
final DateTimeZone fromDtz = DateTimeZone.forID("Europe/Paris");
final DateTime fromDt = DateTime.parse("2013-08-08T01:02:03+0200").withZone(fromDtz);
final DateTimeZone toDtz = DateTimeZone.forID("Europe/London");
final DateTime toDt = DateTime.parse("2013-08-08T01:02:05+0100").withZone(toDtz);
final Interval interval = new Interval(fromDt, toDt);
Run Code Online (Sandbox Code Playgroud)
但是,我似乎在时间间隔结束时丢失了时区信息.如果我toString()在收到的间隔内做一个简单的事情:
2013-08-08T01:02:03.000+02:00/2013-08-08T02:02:05.000+02:00
Run Code Online (Sandbox Code Playgroud)
这是我想要保留的一些信息(在时间间隔结束时日期时间的具体时区).
我浏览了文档和源代码,看起来Interval只包含一个单一的年表.有没有办法告诉Joda保留两个时区而不用手动围绕两个单独的DateTimes?
我有一个包含可选项的类Map:
private Optional<ImmutableMap<String, String>> stuff;
Run Code Online (Sandbox Code Playgroud)
在我的类构造函数中,我被传递Map<String, String> inputStuff,其中inputStuff可能是:
nullMapMap对于我需要存储的前两个实例Optional.absent(),对于第三个实例,我需要存储Optional地图的不可变副本.在处理这个方面我能想出的最好的是:
final ImmutableMap<String, String> tmp = ImmutableMap.copyOf(Objects.firstNonNull(inputStuff, ImmutableMap.<String, String>of()));
if (inputStuff.isEmpty())
{
this.stuff = Optional.absent();
}
else
{
this.stuff = Optional.of(inputStuff);
}
Run Code Online (Sandbox Code Playgroud)
有没有更清洁的方法来处理这个?
java ×7
guava ×3
android ×2
angularjs ×2
jackson ×2
d3.js ×1
google-maps ×1
javascript ×1
jodatime ×1
queue.js ×1
restangular ×1