例:
String1 = "AbBaCca";
String2 = "bac";
Run Code Online (Sandbox Code Playgroud)
我想检查String1是否包含String2.
我有一个字符串:
var myString:String = "My String"
Run Code Online (Sandbox Code Playgroud)
如何InputStream在 Kotlin 中将其转换为?
我需要知道我使用 Kotlin 的简单应用程序的当前工作目录的完整路径。
在 Kotlin 中使用标准库生成字符串的 MD5 哈希的最佳方法是什么?
我试过下面提到的代码
import java.math.BigInteger
import java.security.MessageDigest
fun md5(input:String): String {
val md = MessageDigest.getInstance("MD5")
return BigInteger(1, md.digest(input.toByteArray())).toString(16).padStart(32, '0')
}
Run Code Online (Sandbox Code Playgroud)
这是最好的方法还是哪种方法?
我正在开发一个带有片段FragmentActivity的基于片段的简单应用程序.应用程序的每个"屏幕"都包含在一个片段中,所有片段都会在应用程序启动时添加到容器布局中.
// Set up fragments in Main Activity
fragMan = getFragmentManager();
FragmentTransaction ft = fragMan.beginTransaction();
ft.add(R.id.fragment_container, settingsFragment);
ft.add(R.id.fragment_container, mapFragment);
ft.add(R.id.fragment_container, tracksFragment);
ft.add(R.id.fragment_container, waypointsFragment);
ft.commit();
Run Code Online (Sandbox Code Playgroud)
通过隐藏当前可见的片段,然后显示适当的片段来完成转换.
ft = fragMan.beginTransaction();
ft.show(mapFragment);
ft.addToBackStack(null);
ft.commit();
Run Code Online (Sandbox Code Playgroud)
这一切都运行正常,但是当按下后退按钮时,应用程序退出,无论哪个屏幕可见或先前的事务已添加到后栈.
我已经检查过以确保后端堆栈正确累积记录并尝试了许多不同的转换方法变体,例如替换片段而不是隐藏/显示它们,创建片段的新实例而不是将它们存储在变量中等等.正如我所知,我的代码与我能找到的所有教程和示例相匹配,我甚至无法找到任何类似问题/类似问题的例子,大概是因为标准实现"只适用于其他人".
我怀疑它可能是应用程序级别的问题,例如我的清单中的属性(我已经非常彻底地调查过)或者我的应用程序设置方式固有的东西,这会阻止后退按钮正常运行.我可以覆盖onBackPressed来手动处理转换,但这似乎是一个非常难看的解决方法.关于为什么这可能没有按预期行事的任何想法?顺便说一句,这是运行Jelly Bean的Nexus 7.
我一直在关注NavigationBasicSample中的示例
但使用最新的库进行导航:
implementation "android.arch.navigation:navigation-fragment-ktx:1.0.0-alpha05"
implementation "android.arch.navigation:navigation-ui-ktx:1.0.0-alpha05"
Run Code Online (Sandbox Code Playgroud)
和androidx库:
implementation 'androidx.core:core-ktx:1.0.0-rc01'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.0-rc01'
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
implementation 'com.google.android.material:material:1.0.0-rc01'
implementation 'androidx.legacy:legacy-support-v4:1.0.0-rc01'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-rc01'
Run Code Online (Sandbox Code Playgroud)
并添加到bundle.gradle
androidExtensions {
experimental = true
}
Run Code Online (Sandbox Code Playgroud)
除动画外的所有作品。是虫子还是?
这是我的nav_graph:
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
app:startDestination="@+id/categoryFragment">
<fragment
android:id="@+id/categoryFragment"
android:name="com.sample.CategoriesFragment"
android:label="Categories"
tools:layout="@layout/fragment_categories">
<action
android:id="@+id/action_categoryFragment_to_itemsFragment"
app:destination="@id/itemsFragment"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left" />
</fragment>
<fragment
android:id="@+id/itemsFragment"
android:name="com.sample.ItemsFragment"
android:label="Items"
tools:layout="@layout/fragment_items" >
<argument android:name="cat_id" android:defaultValue="-1" />
</fragment>
</navigation>
Run Code Online (Sandbox Code Playgroud)
和我的navhost片段:
<fragment
android:id="@+id/fragment_nav_host"
app:defaultNavHost="true"
android:name="androidx.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/nav_graph"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
/>
Run Code Online (Sandbox Code Playgroud) 我正在尝试转换传统地图:
1 -> "YES",
2 -> "NO",
3 -> "YES",
...
Run Code Online (Sandbox Code Playgroud)
具有固定键的地图列表,例如:
[
<number -> 1,
answer -> "YES">,
<number -> 2,
answer -> "NO">,
...
]
Run Code Online (Sandbox Code Playgroud)
现在我有一个看起来不太好的解决方案,并且没有真正利用 Kotlin 的功能特性。我想知道是否有更清晰的解决方案:
fun toListOfMaps(map: Map<Int, String>): List<Map<String, Any>> {
val listOfMaps = emptyList<Map<String, Any>>().toMutableList()
for (entry in map) {
val mapElement = mapOf(
"number" to entry.component1(),
"answer" to entry.component2()
)
listOfMaps.add(mapElement)
}
return listOfMaps
}
Run Code Online (Sandbox Code Playgroud) 我有一个字符串数组
val array = arrayOf("a", "b", "c")
Run Code Online (Sandbox Code Playgroud)
我需要将其转换为 HashSet
val set = HashSet<String>()
Run Code Online (Sandbox Code Playgroud) 我已经使用这篇Baeldung 文章为我的 Spring 2.0.4 应用程序添加了 Actuator 支持。在第 4.4 节中,它谈到
健康指标的一个方便特性是我们可以将它们聚合为层次结构的一部分
但它没有讨论如何进行这种聚合。我也找不到有关如何执行此操作的任何文档。
问题 你们中有人知道有关创建此类聚合的教程、示例或其他文档吗?
更多信息
我的应用程序中有一个依赖于几个子组件的服务。只有当所有这些子组件都关闭时,才认为服务本身已关闭。只要有一个,那么服务就启动了。当前使用正常HealthIndicator机制,如果子组件之一关闭,则将服务器标记为关闭。
似乎我想使用CompositeHealthIndicator但不清楚如何在没有系统拾取的情况下创建子 HealthIndicators。该警告是,这些子组件的使用@Scheduled注释,我的理解是,为了使该工作类必须使用@Component注解(或类似),这将导致它被创建并吸入到应用程序运行状况。
澄清 我添加了执行器,健康 URL 如下所示:
{"status":"UP","details":{"MyServ1":{"status":"UP","details":{"Latency":...}},"MyServ2":{"status" :"UP","details":{"Latency":...}},"diskSpace":{"status":"UP","details":{"total":...,"free": ...,“临界点”:...}}}}
但是如果“MyServ1”或“MySrv2”关闭,则整体状态关闭,但我只希望在“diskSpace”关闭或“MyServ1”和“MyServ2”关闭时发生这种情况。
看起来这CompositeHealthIndicator将是合适的课程,目前尚不清楚我如何为其创建儿童健康指标(只需使用new)?
提前致谢
当我创建一个需要自动获取的任何用户时,该用户使用 @CreatedBy 注释创建了该用户,并且当我操作任何需要使用 @LastModifiedBy 注释自动获取的内容时。但这现在行不通了。可能是什么原因?
This is my entity class
@Slf4j
@Getter
@Setter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class AbstractAuditingEntity implements Serializable {
private static final long serialVersionUID = 1L;
@CreatedBy
@Column(name = "created_by" , nullable = false, length = 50, updatable = false)
@JsonIgnore
private String createdBy;
@CreatedDate
@Column(name = "created_date", updatable = false)
@JsonIgnore
private Instant createdDate = Instant.now();
@LastModifiedBy
@Column(name = "last_modified_by", length = 50)
@JsonIgnore
private String lastModifiedBy;
@LastModifiedDate
@Column(name = "last_modified_date")
@JsonIgnore
private Instant lastModifiedDate = …Run Code Online (Sandbox Code Playgroud)