タグ付けされた質問 「kotlin」

Kotlinは、JetBrainsに支えられた、静的に型付けされたオープンソースのプログラミング言語です。KotlinはOOPと機能の機能を組み合わせ、相互運用性、安全性、明確性、およびツールのサポートに重点を置いています。現在、JVMとJavaScriptを対象としており、Androidで公式にサポートされている言語です。


11
Kotlinの複数の変数let
kotlinで複数のnull許容変数の複数のletをチェーンする方法はありますか? fun example(first: String?, second: String?) { first?.let { second?.let { // Do something just if both are != null } } } つまり、次のようなものです: fun example(first: String?, second: String?) { first?.let && second?.let { // Do something just if both are != null } }
127 kotlin 

19
Androidルーム-単純な選択クエリ-メインスレッドのデータベースにアクセスできません
Room Persistence Libraryでサンプルを試しています。エンティティを作成しました: @Entity public class Agent { @PrimaryKey public String guid; public String name; public String email; public String password; public String phone; public String licence; } DAOクラスを作成しました。 @Dao public interface AgentDao { @Query("SELECT COUNT(*) FROM Agent where email = :email OR phone = :phone OR licence = :licence") …


1
Kotlinで「代わりに、そのクラスでダガープロセッサを実行することをお勧めします」
Kotlinクラスにインジェクトするたびに、ビルドでこのメモが表示されます(ところで、kotlinとjavaの両方が混在するAndroidプロジェクトがあります)。 たとえば、このGradleタスクの後compileStagingDebugJavaWithJavac(StagingDebugは私のビルドバリアントです)、次のメッセージが表示されます。 「注:com.packageNameXXX.CourseDiscoveryMapFragmentのMembersInjectorまたはFactoryを生成しています。代わりに、そのクラスに対して短剣プロセッサを実行することをお勧めします。」 私のCourseDiscoveryMapFragmentコードはここにあります: class CourseDiscoveryMapFragment : Fragment(){ @Inject lateinit var presenter: CourseDiscoveryMapPresenter lateinit var mapView: MapView override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.fragment_discovery_map, container, false) MapsInitializer.initialize(activity) mapView = view.mapView mapView.onCreate(savedInstanceState?.getBundle(BUNDLE_KEY_MAP_STATE)) (activity as BaseActivity) .activityComponent.inject(this) } そして私のActivityComponentは: @ActivityScope @Subcomponent(modules = ActivityModule.class) public interface …
124 android  kotlin  dagger 


2
プロパティは初期化するか、抽象的である必要があります
馬鹿げた質問に違いありませんが、私はKotlinに本当に慣れていないので、解決策は見つかりませんでした。 クラスフィールドを宣言する方法は?私たちはそれをJavaで持つことができるように: protected SharedPreferences mSharedPreferences; そして後でonCreate(): mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this) これで、このベースアクティビティのサブクラス内の任意の場所で使用できます。 私はコトリンでも同じことをしようとします: protected var sharedPreferences : SharedPreferences そしてでonCreate(): sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this) しかし、「プロパティは初期化するか、抽象的である必要があります」という警告が表示されます
121 android  kotlin 

11
KotlinでJSONを解析する方法は?
サービスからかなり深いJSONオブジェクト文字列を受け取っていますが、これを解析してJSONオブジェクトに解析し、それをクラスにマップする必要があります。 JSON文字列をKotlinのオブジェクトに変換するにはどうすればよいですか? その後、それぞれのクラスにマッピングするために、JacksonのStdDeserializerを使用しました。問題は、オブジェクトがクラスに逆シリアル化する必要があるプロパティを持っている瞬間に発生します。オブジェクトマッパーを取得できませんでした。少なくとも別のデシリアライザ内で、その方法がわかりませんでした。 助けてくれてありがとう。できれば、ネイティブで、必要な依存関係の数を減らすようにしているので、答えがJSON操作のみであり、解析で十分であれば、十分です。
121 java  json  kotlin 

1
Kotlin配列をJava varargに変換
Kotlin Arrayを可変引数Java に変換するにはどうすればよいString[]ですか? val angularRoutings = arrayOf<String>("/language", "/home") // this doesn't work web.ignoring().antMatchers(angularRoutings) ArrayListをvarargsメソッドパラメータに渡す方法は?

8
Kotlinの「forEach」の「break」と「continue」
Kotlinには、forEachまたはのような非常に優れた反復関数repeatがありますが、breakand continue演算子でそれらを操作することはできません(ローカルと非ローカルの両方)。 repeat(5) { break } (1..5).forEach { continue@forEach } 目標は、関数構文を通常のループにできるだけ近づけることです。一部の古いバージョンのKotlinではそれは間違いなく可能でしたが、構文を再現するのに苦労しています。 問題はラベル(M12)のバグかもしれませんが、最初の例はとにかく動作するはずです。 特別なトリック/注釈についてどこかで読んだようですが、この件に関する参照を見つけることができませんでした。次のようになります。 public inline fun repeat(times: Int, @loop body: (Int) -> Unit) { for (index in 0..times - 1) { body(index) } }
120 loops  foreach  lambda  kotlin 

6
コトリンコルーチンでのサスペンド機能の意味
私はコトリンコルーチンを読んでいて、それがsuspend機能に基づいていることを知っています。しかし、どういうsuspend意味ですか? コルーチンまたは関数が中断されますか? https://kotlinlang.org/docs/reference/coroutines.htmlから 基本的に、コルーチンはスレッドをブロックせずに中断できる計算です 「サスペンド機能」とよく言われます。しかし、関数が終了するのを待っているので中断されるのはコルーチンだと思いますか?「一時停止」は通常「操作を停止する」ことを意味します。この場合、コルーチンはアイドル状態です。 weコルーチンは一時停止されていると言えますか? どのコルーチンが一時停止されますか? https://kotlinlang.org/docs/reference/coroutines.htmlから 類推を続けると、await()は、何らかの計算が完了するまでコルーチンを中断してその結果を返す中断関数(したがって、非同期{}ブロック内からも呼び出し可能)にすることができます。 async { // Here I call it the outer async coroutine ... // Here I call computation the inner coroutine val result = computation.await() ... } 🤔「計算が完了するまでコルーチンを一時停止する」とありますが、コルーチンは軽量スレッドのようなものです。したがって、コルーチンが中断されている場合、どのように計算を実行できますか? 私たちは見るawaitに呼び出されたcomputationことがあるかもしれないので、asyncそれを返すDeferredことが別のコルーチンを開始できる手段、 fun computation(): Deferred<Boolean> { return async { true } } quote コルーチンを一時停止するという引用。それsuspendは外側のasyncコルーチン、またはsuspend内側のcomputationコルーチンを意味しますか? いsuspendながら、外側のことを意味しasyncコルーチンが(待っているawait内側のために)computationそれ(アウター、仕上げにコルーチンasyncコルーチン)スレッドプールには空転(名前の由来は、サスペンド)と戻り、スレッド、および時に子computationコルーチンが終了すると、それは(外asyncコルーチン)ウェイクアップし、プールから別のスレッドを取得して続行しますか? …

13
Kotlinを使用してAndroidでParcelableデータクラスを作成する便利な方法はありますか?
現在、Javaプロジェクトで優れたAutoParcelを使用しています。これにより、Parcelableクラスの作成が容易になります。 現在、次のプロジェクトで検討するKotlinには、equals、hashCode、およびtoStringメソッドを自動的に生成するデータクラスの概念があります。 (メソッドを手動で実装せずに)Kotlinデータクラスを便利な方法でParcelableにする便利な方法はありますか?


5
KotlinとAndroidでの「パラメータTを推測するのに十分な情報がない」
Kotlinを使用してAndroidアプリで次のリストビューを複製しようとしています:https : //github.com/bidrohi/KotlinListView。 残念ながら、自分で解決できないエラーが発生しています。これが私のコードです: MainActivity.kt: override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val listView = findViewById(R.id.list) as ListView listView.adapter = ListExampleAdapter(this) } private class ListExampleAdapter(context: Context) : BaseAdapter() { internal var sList = arrayOf("Eins", "Zwei", "Drei") private val mInflator: LayoutInflater init { this.mInflator = LayoutInflater.from(context) } override fun getCount(): Int …

13
未解決の参照:kotlinx
Android StudioでKotlinとKotlin Android拡張機能を試してみます。Ubuntu 14.04のAndroid Studio v 1.5.1とOS X El CapitanのAndroid Studio v 1.5.1の両方でこれを試したところ、同じ結果が得られました。 これが私がやっていることです: Kotlinプラグイン1.0.0-beta-35950-IJ141-11をインストールします 新しい空のAndroidプロジェクトを作成する MainActivityファイルをKotlinに変換します(help-> findaction-> convert file to kotlinを使用) Kotlinのプロジェクトを構成する 次に、生成されたcontent_main.xmlファイルに移動して、「Hello World!」のID(hello)を追加します TextView。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.gmail.npnster.mykotlinfirstproject.MainActivity" tools:showIn="@layout/activity_main"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:id="@+id/hello" /> </RelativeLayout> …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.