我在HOT Hariri 的GOTO 2016•Kotlin - Ready for Production会议上见证了这一点.
在他的一些代码中,通常会是这样的:
if (x != y) { /* do some stuff */ }
Run Code Online (Sandbox Code Playgroud)
正在以优雅的风格展示:
if (x ? y) { /* do some stuff */ }
Run Code Online (Sandbox Code Playgroud)
这是实时编码会话的屏幕截图:
他正在使用常规!=操作员,IDEA正在处理剩下的事情.
我一直在使用IntelliJ的配置,但无法启用这个新的奇特功能.有帮助吗?
PS.我正在使用最新的Ultimate版本(2016.3.3).
使用Retrofit + Gson和Realm时遇到问题.我知道这3个库的组合存在问题.一些答案表明,ExclusionStrategy为Gson设置一个可以解决这个问题,我试过但它没有用.
我的代码看起来像:
public class ObjectList {
public List<AnotherObject> anotherObject;
}
public class AnotherObject extends RealmObject {
private String propA;
public void setPropA(String propA){
this.setPropA = propA
}
public String getPropA(){
return propA
}
}
Gson gson = new GsonBuilder().setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return f.getDeclaringClass().equals(RealmObject.class);
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}
}).create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://localhost/api/")
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
ObjectAPI objectAPI …Run Code Online (Sandbox Code Playgroud) 我正在使用Gson序列化/反序列化我的pojos,并且目前正在寻找一种干净的方式来告诉Gson将日期属性解析/输出为unix-timestamps.这是我的尝试:
Gson gson = new GsonBuilder().setDateFormat("U").create();
Run Code Online (Sandbox Code Playgroud)
来自PHP,其中"U"是用于解析/输出日期的dateformat作为unix-timestamps,当运行我的尝试代码时,我得到这个RuntimeException:
未知的模式字符'U'
我假设Gson在引擎盖下使用SimpleDateformat,但没有定义字母"U".
我可以写一个DateTypeAdapter并注册它,GsonBuilder但我正在寻找一种更清洁的方法来实现这一目标.简单地改变它DateFormat会很棒.
为了制作全屏应用程序,我对新的"空白活动"项目的清单进行了以下更改:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
Run Code Online (Sandbox Code Playgroud)
在任何设备上运行时,应用程序崩溃.我所做的更改已经被StackOverflow中的许多帖子推荐,我无法弄清楚我做错了什么.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
<activity
android:name="com.example.app.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud) 我收到了关于如何在toast点击时做出反应的消息,所以我决定在这里为每个人发布.
当用户点击时,toast我并不总是希望消息消失,但取决于我想要的消息类型:
jquery对话框(例如:显示收到的短信).使用基本点击事件我无法检测到toast我点击了.我找到的唯一解决方法是在toast中添加一个链接,并在用户点击它时进行重定向.
所以我要问的是通过使用基本点击事件来获取用户点击的当前吐司的方法(但这可能需要更多工作隐藏数据在吐司中以便在单击时恢复它以了解要做什么),或者通过添加到创建toast的函数,单击时可以对函数进行可选的回调,如下所示:
toastr.error(
'body text',
'header text',
click: function() {
console.log('you clicked on the error toaster')
}
);
Run Code Online (Sandbox Code Playgroud)
谢谢你这个非常好的图书馆.
我有点陷入两难境地,我希望你们可以帮助我.
正如你所看到的AsyncTask,我有一些代码可以将Bitmap对象作为.jpg文件保存到库中.在AsyncTask我也使用a Context,但据我所知使用Activity此内部类的上下文可能会导致内存泄漏,所以我将其更改为一个WeakReference<Context> weakContext;垃圾收集器可以收集它.
但是通过使用Application我从View构造函数传递的上下文,我应该归档与弱上下文引用相同的效果
那么在这种情况下使用比其他更好吗?
public class ViewToBitmap {
private View view;
private WeakReference<Context> weakContext;
public ViewToBitmap(@NonNull View view) {
this.view = view;
}
// This?
private WeakReference<Context> getContext() {
weakContext = new WeakReference<>(view.getContext());
return weakContext;
}
// Or This?
private Context getContext() {
return view.getContext().getApplicationContext();
}
private class AsyncSaveBitmap
extends AsyncTask<Void, Void, Void>
implements MediaScannerConnection.OnScanCompletedListener {
@Override
protected Void doInBackground(Void... params) {
//TODO: …Run Code Online (Sandbox Code Playgroud) 我不记得安装了哪个版本,我想知道但不知道如何。可能会有一些命令发送到终端,但我不知道。
谁能告诉我吗?
提前致谢。
我有一个类User,我从 system1 收到 JSON(用于 User 类),我应该读取信息,验证然后转发到 system2,我无法触及这两个系统,问题是键的名称不同,我想区分收到的 JSON 的反序列化名称和序列化名称之间是:
{"userId":"user1","pwd":"123456","country":"US"}
"{"username":"user1","password":"123456","country":"US"}"
但发送的应该是这样的
我正在使用 Gson lib,这是我的代码:
class User implements Cloneable {
@SerializedName("username")
private String username ;
@SerializedName("password")
private String password ;
@SerializedName("country")
private String country ;
}
Run Code Online (Sandbox Code Playgroud)
class TestJson {
private static GsonBuilder gsonBuilder;
private static Gson gson;
public static Object fromJson(String json, Class clz) {
gson = new Gson();
return gson.fromJson(json, clz);
}
public static String toJson(Object obj) {
gsonBuilder = new GsonBuilder();
gson = …Run Code Online (Sandbox Code Playgroud) 问题标题可能看起来与其他帖子相同,但内容不同。所以请不要将其标记为重复。
问题:
我有以下课程:
public class SCDTO extends RDTO {
private List<String> sCPairs = Collections.emptyList();
public SCDTO(List<String> sCPairs) {
this.sCPairs = sCPairs;
}
//Getter setter
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用下面的 lambda 表达式来设置sCPairs.
sCPairsObject.setSCPairs(
util.getSCMap().entrySet().stream()
.filter(entry -> entry.getValue().contains("abc"))
.collect(Collectors.toCollection(ArrayList<String>::new))
);
Run Code Online (Sandbox Code Playgroud)
但我有一个编译错误:
no instance(s) of type variable(s) exist so that Entry<String, List<String>> conforms to String
Run Code Online (Sandbox Code Playgroud)
util.getSCMap返回Map<String, List<String>>。
谁能解释一下为什么会发生这种情况以及如何解决它?
谢谢。
我是谷歌地图的新手。我已经阅读了Overlapping Marker Spiderfier文档,但我仍然对如何将其实现到我的地图中感到困惑。
这是我的尝试:
function initialize() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 7,
center: new google.maps.LatLng(40.0000, 48.0000),
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true,
zoomControl: true
});
var locations = [[40.0000, 48.0000], [40.0000, 48.0000], [40.0000, 48.0000]];
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][0], locations[i][1]),
map: map
});
}
}
google.maps.event.addDomListener(window, 'load', initialize);
Run Code Online (Sandbox Code Playgroud)
您可以在jsfiddle 中找到此代码。
我有这个方法返回一个List用户名,由于某种原因,它抛出一个indexOutOfBoundException.
public String [] getUsernames(){
String[] usernames = new String [friendRequests.size()];
int i = 1;
for (FriendRequest friendRequest: this.friendRequests){
usernames[i]= friendRequest.getUsername();
i++;
}
return usernames;
}
Run Code Online (Sandbox Code Playgroud)
注意
请不要只是盲目地对这个问题进行投票,因为它已经存在了.
当我问这个问题时(差不多三年前),我的英语技能并不是那么好,这就是为什么它被拒绝投票的主要原因.
我编辑它以使我的问题更加清晰.
android ×5
gson ×3
java ×3
javascript ×2
date-format ×1
equals ×1
formatting ×1
generics ×1
google-maps ×1
homestead ×1
java-8 ×1
jquery ×1
json ×1
lambda ×1
laravel ×1
php ×1
realm ×1
retrofit ×1
toastr ×1