小编m0s*_*it0的帖子

我怎样才能找到两个日期之间的年数?

我试图确定从某个日期开始的年龄.有没有人知道在Android中这样做的干净方法?我显然有Java api可用,但直接的java api非常弱,我希望Android有一些东西可以帮助我.

编辑:在Android中使用Joda时间的多个建议让我有点担心Android Java - Joda Date很慢且相关问题.此外,拉入一个未随平台一起提供的库,这个尺寸可能太大了.

java android date

53
推荐指数
4
解决办法
9万
查看次数

如何在IntelliJ中调试多线程应用程序?

我在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 debugging multithreading intellij-idea

53
推荐指数
1
解决办法
4万
查看次数

Java有懒惰的评估吗?

我知道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 也会被调用?

java lazy-evaluation

27
推荐指数
4
解决办法
3万
查看次数

NoSuchMethodError:java.lang.Long.hashCode

hashCodeAbstractORM课堂上有以下方法覆盖:

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)

android intellij-idea kotlin

18
推荐指数
2
解决办法
2703
查看次数

Haskell:正则表达式和Data.Text

处理大量文本数据时,建议使用Data.Text而不是haskells本地字符串.检查,完成.但正则表达式怎么样?有专门的正则表达式库Data.Text吗?据我所知,所有正则表达式库都在处理Haskell原生字符串甚至更糟糕的CStrings.

regex text haskell

15
推荐指数
1
解决办法
2704
查看次数

拦截方法调用

我有这个代码

Foo foo = new Foo();
foo.callTheMethod();
Run Code Online (Sandbox Code Playgroud)

有没有办法可以在Foo.callTheMethod()没有子类或修改Foo类的情况下拦截调用,而且没有Foo工厂?

编辑:抱歉忘了提到这是在Android平台上.

java reflection android

14
推荐指数
3
解决办法
2万
查看次数

获取进程的基址

我想访问某个进程的某个地址.但为此我需要首先获得该进程的基地址.我正在使用一种工具来判断我是否真的做得对.该工具显示我需要以下内容:"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)

我怎样才能获得我打开过程的基地址?

c++ windows pointers

12
推荐指数
2
解决办法
2万
查看次数

获取简体中文的Locale变体

我怎样才能得到简体中文说明(简体)?从可用的语言环境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_codesspecial_locale_names)加载的.

除了必须在我的资源中硬编码/包含此字符串之外的任何解决方案?

android locale

12
推荐指数
1
解决办法
1622
查看次数

在TCP/IP模式下设置ADB:找不到设备?

我之前已经使用过这些命令来设置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中没有做任何更改(没有更新).任何帮助,将不胜感激.

ubuntu android adb

10
推荐指数
2
解决办法
3万
查看次数

如何为lein run和lein repl定义project.clj工作?

我是Clojure的新手,我不太明白如何写我的,project.clj所以它适用于lein repllein 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不同的方式打电话?

提前致谢.

编辑 …

clojure

8
推荐指数
1
解决办法
8918
查看次数