小编las*_*ase的帖子

使用Spring从Properties文件加载嵌套占位符

是否可以从属性文件中加载嵌套占位符?我正在尝试动态加载URL.

例如,如果我的属性文件包含

my.url=http://localhost:8888/service/{nestedProperty}/
Run Code Online (Sandbox Code Playgroud)

有没有办法在运行时加载{nestedProperty}的值?与ResourceBundle的行为类似.如果是这样,我将如何有效地实例化String?到目前为止,我在想

<bean id="myURLString" class="java.lang.String" scope="prototype" lazy-init="true">
    <property name="URL" value="${my.url}" />
</bean>
Run Code Online (Sandbox Code Playgroud)

...但我不确定要嵌套什么属性.如果可能的话,我想使用Annotations获取bean,尽管我目前有一些东西

ctx.getBean("myURLString", String.class, new Object[] { nestedProperty} );
Run Code Online (Sandbox Code Playgroud)

我在这里查看了PropertyPlaceholderConfigurer和其他几个属性文件问题,但我似乎无法弄清楚这是否可行.

我还应该注意,我想从我的代码中动态加载这个嵌套属性,或者至少从那里操作它们(可能通过@PostConstruct?)

java spring properties-file

7
推荐指数
1
解决办法
4533
查看次数

Flutter-图像在删除后仍然存在吗?

我在抖动中遇到了一些怪异的行为。

我正在使用相机包来捕获图像,如下所示:

void _takePicture() {
_controller.takePicture(_tempImagePath).then((_) {
  setState(() {
    _captured = true;
    _shutterButtonController.forward();
    _acceptCancelController.forward();
  });
});
}
Run Code Online (Sandbox Code Playgroud)

非常简单-捕获的图像符合我的期望。如果您注意到该_captured成员,我将使用它来驱动摄像机预览或捕获的图像的显示。这是我的小部件树的一个片段:

...
AspectRatio(
        aspectRatio: _controller.value.aspectRatio,
        child: _captured
            ? Image.file(File(_tempImagePath))
            : CameraPreview(_controller)),
...
Run Code Online (Sandbox Code Playgroud)

这也像我期望的那样运行-捕获后显示图像。但是,要注意的是Image.file(...)总是显示相同的图像。我尝试了多种删除该图像的方法,但我相信它可以正常工作,但是该图像仍然存在。

我正要删除并重新创建其中的整个目录,initState()因为屏幕的结构如下:

Future<String> get getTempImageDirectory async {
  final directory = await getApplicationDocumentsDirectory();
  var imageDirectory = Directory(directory.path + '/images/');

  print('The image directory ${imageDirectory.path} exists: ${imageDirectory.existsSync()}');

  if (imageDirectory.existsSync()) {
    imageDirectory.deleteSync(recursive: true);
  }

  imageDirectory.createSync();

  return imageDirectory.path;
}
Run Code Online (Sandbox Code Playgroud)

即使这样,或通过名称手动删除图像,原始捕获的图像仍保留在由创建的Widget中Image.file(...)。我相当确定删除操作正常-相机API会抛出一个错误,如果删除它,它将无法覆盖前一个图像。

最后,如果我终止了该应用程序并重新启动,我将能够重新拍摄照片并看到一张新的图像,但是同样,该图像将保留到整个应用程序被终止为止。好像图像以某种方式被缓存了?

我对Flutter和Dart还是比较陌生,因此对您的帮助表示赞赏。

dart flutter

5
推荐指数
1
解决办法
1355
查看次数

在Android Studio中将代码从Java转换为Kotlin

任何人都可以解释如何用Android Studio中的Kotlin替换现有的Java代码吗?

java android screen-orientation kotlin android-studio

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

Kotlin 函数引用是否有一个简单的空安全运算符?

我想在可空对象上传递函数引用。以 Android 为例,假设我想Activity#onBackPressed从作为该活动的子级的片段中使用。

如果我想调用这个函数,我可以很容易地做到

activity?.onBackPressed()
Run Code Online (Sandbox Code Playgroud)

但是,假设我想将其作为参考传递:

val onBackPressedRef = activity::onBackPressed
Run Code Online (Sandbox Code Playgroud)

这给出了熟悉的空安全错误Only safe or non null asserted calls are allowed...


我可以通过以下方式消除错误,但使用!!显然并不理想:

val onBackPressedRef = activity!!::onBackPressed
Run Code Online (Sandbox Code Playgroud)

尝试activity?::onBackPressed是我的第一直觉,但这也打破了几个错误,解释器似乎很困惑。

val onBackPressedRef = activity?.let { it::onBackPressed } 
Run Code Online (Sandbox Code Playgroud)

最后一个变体有效,但它比仅使用?::. 我检查了我能找到的所有文档,但我觉得我错过了一些东西。有任何想法吗?

kotlin

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

Android Studio - 由于找不到 java 而无法运行测试?

我无法运行以前在 Android Studio 中能够运行的单元测试,我完全迷失了。这是抛出的错误:

Caused by: java.io.IOException: Cannot run program ""/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java"": error=2, No such file or directory
Run Code Online (Sandbox Code Playgroud)

一些背景:我认为这可能与我之前尝试从命令行运行 gradle 有关。由于这是一台新机器,gradle 抱怨没有安装 java。此外,$ java -verison还会弹出 Mac 系统对话框,提示我安装 Java。因此,我通过 homebrew 安装了 java 并将其符号链接到/Library/Java/JavaVirtualMachines,然后开始从命令行获取 java。

担心这会造成我的问题,我删除了自制程序安装和符号链接,提示命令行调用 java/gradle 再次开始抱怨。

我最后一次修复尝试是将 Android Studio jdk 设置为JAVA_HOME,但我仍然收到此错误。

我可以很好地构建应用程序和 APK,但无论我如何尝试,测试都不会运行。任何一丝洞察力都会受到赞赏。

java macos android gradle

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

execv()关于论点的怪癖

我正在尝试为作业输出"ps"的结果,但我遇到了一些我想弄明白的怪癖.

这可以正常工作,并在shell中显示ps的输出:

//Create "ps -u laser"
int pid_ps = fork();
char *argv[1] = {"-u laser"};
if (pid_ps == 0) {
   execv("/bin/ps", argv);
}
Run Code Online (Sandbox Code Playgroud)

现在,这是我的幻灯片中给出的格式,但只是给出了"用法:"和"格式是一个或多个:"ps运行时的通知:

//Create "ps -u laser"
int pid_ps = fork();
char *argv[2] = {"-u", "laser"};
if (pid_ps == 0) {
   execv("/bin/ps", argv);
}
Run Code Online (Sandbox Code Playgroud)

我也尝试在数组的末尾放置0和NULL,这是在其他答案中提出的,但没有运气.

我可能忽略了一些小事,但我对c不太熟悉.任何见解都表示赞赏.

c c++

2
推荐指数
1
解决办法
8720
查看次数