我试图确定从某个日期开始的年龄.有没有人知道在Android中这样做的干净方法?我显然有Java api可用,但直接的java api非常弱,我希望Android有一些东西可以帮助我.
编辑:在Android中使用Joda时间的多个建议让我有点担心Android Java - Joda Date很慢且相关问题.此外,拉入一个未随平台一起提供的库,这个尺寸可能太大了.
我在IntelliJ IDEA 14.0.2中有多个线程和断点的奇怪问题.断点在停止之前执行之后的代码.
import java.util.concurrent.atomic.AtomicInteger;
public class Main {
private static final int NUM_CLIENTS = 1000;
static class TestRunnable implements Runnable {
AtomicInteger lock;
@Override
public void run() {
synchronized (this.lock) {
int curCounter = this.lock.addAndGet(1);
System.out.println("Thread: " + Thread.currentThread().getName() + "; Count: " + curCounter);
if (curCounter >= NUM_CLIENTS) {
lock.notifyAll();
}
}
}
}
public static void main(final String args[]) {
final AtomicInteger lock = new AtomicInteger(0);
for (int i = 0; i < NUM_CLIENTS; i++) {
TestRunnable …
Run Code Online (Sandbox Code Playgroud) 我知道Java在这种情况下有智能/懒惰的评估:
public boolean isTrue() {
boolean a = false;
boolean b = true;
return b || (a && b); // (a && b) is not evaluated since b is true
}
Run Code Online (Sandbox Code Playgroud)
但是关于:
public boolean isTrue() {
boolean a = isATrue();
boolean b = isBTrue();
return b || a;
}
Run Code Online (Sandbox Code Playgroud)
isATrue()
即使isBTrue()
返回true 也会被调用?
我hashCode
在AbstractORM
课堂上有以下方法覆盖:
var _id = Random().nextLong()
override fun getId() = _id // AbstractORM class implements an interface that defines this method getId()
override fun hashCode() = getId().hashCode()
Run Code Online (Sandbox Code Playgroud)
突然开始抛出以下异常:
FATAL EXCEPTION: main
java.lang.NoSuchMethodError: java.lang.Long.hashCode
at com.company.ormlite.AbstractORM.hashCode(AbstractORM.kt:271)
at java.util.HashMap.put(HashMap.java:390)
at java.util.HashSet.add(HashSet.java:95)
at kotlin.collections.ArraysKt___ArraysKt.toCollection(_Arrays.kt:6518)
at kotlin.collections.ArraysKt___ArraysKt.toSet(_Arrays.kt:6853)
at kotlin.collections.SetsKt__SetsKt.setOf(Sets.kt:32)
at com.company.android.tna.orm.DataManager.getTables(DataManager.kt:16)
at com.company.android.tna.orm.DataManager.getTables(DataManager.kt:10)
at com.company.android.core.utils.AbstractDataManager.create(AbstractDataManager.kt:25)
at com.company.android.core.utils.AbstractDataManager.start(AbstractDataManager.kt:44)
at com.company.android.core.utils.AbstractZKApplication.onCreate(AbstractZKApplication.kt:54)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:999)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4151)
at android.app.ActivityThread.access$1300(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at …
Run Code Online (Sandbox Code Playgroud) 处理大量文本数据时,建议使用Data.Text
而不是haskells本地字符串.检查,完成.但正则表达式怎么样?有专门的正则表达式库Data.Text
吗?据我所知,所有正则表达式库都在处理Haskell原生字符串甚至更糟糕的CStrings.
我有这个代码
Foo foo = new Foo();
foo.callTheMethod();
Run Code Online (Sandbox Code Playgroud)
有没有办法可以在Foo.callTheMethod()
没有子类或修改Foo
类的情况下拦截调用,而且没有Foo
工厂?
编辑:抱歉忘了提到这是在Android平台上.
我想访问某个进程的某个地址.但为此我需要首先获得该进程的基地址.我正在使用一种工具来判断我是否真的做得对.该工具显示我需要以下内容:"app.exe"+0x011F9B08 = 0x119F8300
我以为我可以获得进程的基地址OpenProcess()
,但这给了我:0x0000005c
结果.我不认为这是对的吗?至少,不是我需要的.
我认为我需要的基地址是: 0x119F8300 - 0x011F9B08 = 0x107FE7F8 <-- base?
这是我的代码:
hWindow = FindWindow(NULL, lpWindowName);
if(hWindow)
{
GetWindowThreadProcessId(hWindow, &dwProcId);
if(dwProcId != 0)
{
// hProcHandle -> 0x0000005c
hProcHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcId);
}
else
{
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得我打开过程的基地址?
我怎样才能得到简体中文说明(简体)?从可用的语言环境Locale.SIMPLIFIED_CHINESE
,似乎没有方法返回此描述:
getDisplayLanguage()
返回正确的语言名称,但没有变体.getDisplayName()
返回正确的语言名称和国家/地区,但也没有变体.getDisplayVariant()
返回一个空字符串.我也尝试Locale
使用不同的构造函数构建一个新的,也无济于事.
new Locale("zh", "CN");
new Locale("zh", "CN", "Hans");
Run Code Online (Sandbox Code Playgroud)
我已经检查了Android源代码,LocalePicker
并且我得出结论,它是从资源(special_locale_codes
和special_locale_names
)加载的.
除了必须在我的资源中硬编码/包含此字符串之外的任何解决方案?
我之前已经使用过这些命令来设置ADB来侦听TCP/IP,但这次我惊呆了.问题是它抛出的错误没有意义:
$ adb tcpip 5555
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
error: device not found
Run Code Online (Sandbox Code Playgroud)
事实上,即使尝试将其置于USB模式也不起作用,但同样的错误:
$ adb usb
error: device not found
Run Code Online (Sandbox Code Playgroud)
仅供参考,adb帮助说:
adb usb - restarts the adbd daemon listening on USB
adb tcpip <port> - restarts the adbd daemon listening on TCP on the specified port
Run Code Online (Sandbox Code Playgroud)
我在Android SDK中没有做任何更改(没有更新).任何帮助,将不胜感激.
我是Clojure的新手,我不太明白如何写我的,project.clj
所以它适用于lein repl
和lein run
.这是(整个路径:) ~/my-project/project.clj
:
(defproject my-project "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:dependencies [[org.clojure/clojure "1.3.0"]]
:main my-project.core/hello
)
Run Code Online (Sandbox Code Playgroud)
然后我有我的~/my-project/src/my_project/core.clj
档案
(ns my-project.core)
(defn hello []
(println "Hello world!")
)
Run Code Online (Sandbox Code Playgroud)
lein run
工作正常,但我FileNotFoundException
跑步时得到lein repl
:
~/my-project$ lein run
Hello world!
~/my-project$ lein repl
REPL started; server listening on localhost port 42144
FileNotFoundException Could not locate hello__init.class or hello.clj on classpath: clojure.lang.RT.load (RT.java:430)
clojure.core=>
Run Code Online (Sandbox Code Playgroud)
我该怎么编辑project.clj
来解决这个问题?或者我必须以lein repl
不同的方式打电话?
提前致谢.
编辑 …