将库更新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 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)的截图:
这有点像Java 9的bug(报告为JDK-8194734),但有一种解决方法可以在Windows上启动应用程序而不锁定lib\modules
文件,例如使用外部(代理)应用程序,只需将传递的参数作为应用?
我在我的功能分支中做了一堆未经提交的提交,现在想要重新排序并且可视地部分压缩所属的提交.我认为解决方案在某种程度上取决于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以修改自某次提交以来的提交?
有问题的文件不在我的控制之下.大多数字节序列都是有效的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) 我知道我可以告诉Git表现出如此进步
Resolving deltas: 98% (123/125)
Run Code Online (Sandbox Code Playgroud)
将命令行参数传递--progress
给例如fetch命令时.但是我们有几个大的子模块,没有显示进展.如何告诉Git还显示克隆子模块的进度(例如,作为fetch命令的一部分)?
我们通过在〜/ .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) 我想在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我不想移动到任何其他目录中?
我有一个包含私有方法的库类.通过子类直接覆盖此方法是没有选择的.当从库内部调用这个包私有方法时,有没有办法,无论多么难看,执行自己的代码,例如使用AspectJ?
这是类的简化示例(packagePrivateMethod()
实际上不是直接调用,而是从本机代码调用):
public LibClass {
public LibClass() {
...
packagePrivateMethod();
...
}
void packagePrivateMethod() {
// <-- here I want to execute additional code
...
}
}
Run Code Online (Sandbox Code Playgroud) 一些 git config 值在系统中配置,一些在用户级别,一些在存储库中。调用时
$ git config --list
Run Code Online (Sandbox Code Playgroud)
我得到了所有文件中所有定义的列表。覆盖的值将发生重复。如何获取存储库有效值的列表(我不关心它们的配置位置)?