小编Tho*_* S.的帖子

生命周期 OnLifecycleEvent 已弃用

将库更新lifecycle到 2.4.0 后,Android studio 将所有生命周期事件标记为已弃用。

@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
fun create() {
    tts = TextToSpeech(context, this)
}

@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun stopTTS() {
    tts?.stop()
}
Run Code Online (Sandbox Code Playgroud)

有没有等效的替代品,例如DefaultLifecycleObserver

java lifecycle android kotlin

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

找出SVN工作副本版本(1.7或1.8)

如何在.svn不使用任何SVN工具的情况下查看内部文件,找到工作副本版本(SVN 1.7与1.8)?

svn

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

为什么它会锁定lib/modules?

当我从Java 9应用程序启动任何第三方应用程序,例如记事本(但你可以采取其他任何东西),然后退出Java应用程序:

import java.io.*;

public class LaunchNotepad {
  public static void main(String[] args) throws IOException {
    Runtime.getRuntime().exec(new String[] {"C:\\Windows\\notepad.exe"});
  }
}
Run Code Online (Sandbox Code Playgroud)

启动的第三方应用程序保持锁定Java 9的lib\modules文件.这使得具有私有JRE的Java应用程序很难自行更新,因为无法重命名原始目录(包含JRE).这是ProcessExplorer(Sysinternals)的截图:

ProcessExplorer的屏幕截图,显示了Java 9启动的记事本过程

有点像Java 9的bug(报告为JDK-8194734),但有一种解决方法可以在Windows上启动应用程序而不锁定lib\modules文件,例如使用外部(代理)应用程序,只需将传递的参数作为应用?

java windows java-9

22
推荐指数
1
解决办法
519
查看次数

Git rebase交互式最后n次提交

我在我的功能分支中做了一堆未经提交的提交,现在想要重新排序并且可视地部分压缩所属的提交.我认为解决方案在某种程度上取决于Git交互,但是如何调用它?

$ git rebase --interactive --onto <the-ID-of-the-first-commit-to-rewrite>
Run Code Online (Sandbox Code Playgroud)

用一个弹出VI

noop
Run Code Online (Sandbox Code Playgroud)

内容后跟评论信息.退出后,我的头重置为指定的提交.

如何正确触发交互式rebase以修改自某次提交以来的提交?

git git-rebase

18
推荐指数
5
解决办法
9391
查看次数

如何检测非法的UTF-8字节序列以在java输入流中替换它们?

有问题的文件不在我的控制之下.大多数字节序列都是有效的UTF-8,它不是ISO-8859-1(或其他编码).我想尽我所能提取尽可能多的信息.

该文件包含一些非法字节序列,应替换为替换字符.

这不是一件容易的事,它认为它需要一些关于UTF-8状态机的知识.

Oracle有一个包装器可以满足我的需求:
UTF8ValidationFilter javadoc

是否有类似的东西(商业或免费软件)?

谢谢 -
喜剧

解:

final BufferedInputStream in = new BufferedInputStream(istream);
final CharsetDecoder charsetDecoder = StandardCharsets.UTF_8.newDecoder();
charsetDecoder.onMalformedInput(CodingErrorAction.REPLACE);
charsetDecoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
final Reader inputReader = new InputStreamReader(in, charsetDecoder);
Run Code Online (Sandbox Code Playgroud)

java encoding inputstream utf-8 illegal-characters

16
推荐指数
1
解决办法
9036
查看次数

如何显示子模块获取的进度?

我知道我可以告诉Git表现出如此进步

Resolving deltas:  98% (123/125)  
Run Code Online (Sandbox Code Playgroud)

将命令行参数传递--progress给例如fetch命令时.但是我们有几个大的子模块,没有显示进展.如何告诉Git还显示克隆子模块的进度(例如,作为fetch命令的一部分)?

git

14
推荐指数
1
解决办法
1874
查看次数

OS X:拒绝客户端证书的Git

我们通过在〜/ .gitconfig中添加以下行来访问带有客户端证书的Git服务器

[http]
        sslCAInfo = /path/to/git-ca.crt
        sslCert = /path/to/git-client.crt
        sslKey = /path/to/git-client.pem
Run Code Online (Sandbox Code Playgroud)

这适用于Linux,Windows和OS X <= 10.8,文件完全相同.当我在OS X 10.10上尝试它时,我收到以下错误:

bash-3.2$ git fetch
fatal: unable to access 'https://ourserver:12345/repository.git/': SSL: Can't load the certificate "/path/to/git-client.crt" and its private key: OSStatus -25299
Run Code Online (Sandbox Code Playgroud)

问题既发生在git version 1.9.3 (Apple Git-50),也发生在git version 2.0.1.

更新 从KeyChain中删除相应的项目后,我遇到了以下崩溃:

bash-3.2$ git fetch
2014-11-17 09:58:51.257 git-remote-https[2787:12194] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[0]'
*** First throw call …
Run Code Online (Sandbox Code Playgroud)

git curl client-certificates osx-mavericks osx-yosemite

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

Git:在Windows上重命名目录(仅限大小写)

我想在Windows系统上重命名由Git版本化的目录(更改目录名称的大小写):

$ git mv docs DOCS
Rename from 'docs' to 'DOCS/docs' failed. Should I try again? (y/n) n
fatal: renaming 'docs' failed: Permission denied
Run Code Online (Sandbox Code Playgroud)

我也尝试过force-option - 但结果相同:

$ git mv --force docs DOCS
Rename from 'docs' to 'DOCS/docs' failed. Should I try again? (y/n) n
fatal: renaming 'docs' failed: Permission denied
Run Code Online (Sandbox Code Playgroud)

出于某种原因,Git失败了,因为它认为DOCS已经是一个现有的目录,并且该目录应该在其中移动.我知道我可以使用临时目录名重命名和提交,然后重命名和修改提交到最终名称,但是没有办法告诉Git我不想移动到任何其他目录中?

windows git rename

11
推荐指数
1
解决办法
2980
查看次数

添加代码以打包私有库方法

我有一个包含私有方法的库类.通过子类直接覆盖此方法是没有选择的.当从库内部调用这个包私有方法时,有没有办法,无论多么难看,执行自己的代码,例如使用AspectJ?

这是类的简化示例(packagePrivateMethod()实际上不是直接调用,而是从本机代码调用):

public LibClass {

  public LibClass() {
    ...
    packagePrivateMethod();
    ...
  }

  void packagePrivateMethod() {
    // <-- here I want to execute additional code
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

java aspectj

10
推荐指数
1
解决办法
1298
查看次数

Git 配置:仅列出有效值

一些 git config 值在系统中配置,一些在用户级别,一些在存储库中。调用时

$ git config --list
Run Code Online (Sandbox Code Playgroud)

我得到了所有文件中所有定义的列表。覆盖的值将发生重复。如何获取存储库有效值的列表(我不关心它们的配置位置)?

git

10
推荐指数
1
解决办法
1091
查看次数