気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

httpとhttpsのポート番号

httpのポート番号:80 httpsのポート番号:443

ポート番号の80と443は、ドメイン名の後ろについているけど、それが省略されている

ポート付けた場合と付けない場合は同義となります。
http://aaa.co.jp:80http://aaa.co.jp
https://aaa.co.jp:443https://aaa.co.jp

Git pushできない幾つかのパターンと解決方法

タグが既にある

特に更新していないタグが原因でpushが拒否されることがあります。

[rejected]        example_tag -> example_tag (already exists)

そんなときはタグを更新してみます。

git pull --tags

競合が発生した場合、ローカルにあるものを上書きして解決させます。

git pull --tags -f

Kotlin 型パラメータ

Kotlinソースを見たときに引数に見慣れない変数があったのでググってみた。

inline fun <reified T> startActivity(context: Context) {
    context.startActivity(Intent(context, T::class.java))
}

「context: 」と「T::class.java」の記述はJavaで書くと以下のようになるらしい。

public <T> void startActivity(Context context, Class<T> clazz) {
    context.startActivity(new Intent(context, clazz));
}

型を書くときに 「小文字 + : 」という表記になるんですね。
T::classは型パラメータの表記でClassの書き方。

イマイチなんとなくの理解ですが。 さらに疑問あれば、このページを追記、編集していきます。

Eclipse使ってた人がやりたいIntelliJ IDEA 初期設定

EclipseでできたことをIntelliJでも出来るだけやりたい。
設定した内容の備忘録を書いておきます。

日本語化

Ctrl+Shift+Sで設定を開き、サイドバーのpluginを選択。検索で「japan」と入力。
Japanese Language Packをインストール&IDE再起動

開発が楽になる基本設定

  • 自動ビルド
    • 設定 → ビルド、実行、デプロイ → コンパイル →「自動的にプロジェクトをビルドする」へチェック
  • import文最適化
    • 設定 → エディタ → 一般 → 自動インポート → 「オンザフライでインポートを最適化する」 にチェック
  • コメントアウトをインデント
    • 設定 → エディタ → コードスタイル → Java → コード生成 ※左端タブ → 「最初の列に行コメントを入れる」のチェックを外す、「コメントの最初に空白を追加する」のチェックを入れる
  • エディタとプロジェクトウィンドウを連動
    • プロジェクトを開いた際に表示されるウィンドウの左上のネジアイコンで以下を選択。
      「開いているファイルを常に選択」

ショートカット設定

Ctrl+Shift+Sで設定を開き、キーマップから設定。

  • 開いているエディタタブをすべて閉じる:未設定 → 任意の設定。※Ctrl+Shift+Wは使われている。。

tamata78.hatenablog.com

check-style(静的チェックツール)

Ctrl+Shift+Sで設定を開き、サイドバーのpluginを選択。検索で「CheckStyle」と入力。 インストール&IDE再起動

  • Checkstyle設定ファイル読み込み:設定→ツール→CheckStyle→Configuration Fileで適用ファイルを追加、Active化
  • コードスタイル設定:設定→コードスタイル→Java→スキーム右端のネジアイコン→スキームインポート→CheckStyle Configuration→設定ファイル選択→適用

でOK

便利Plugin

設定→Pluginから容易にインストールが可能。

IDE Reatures Trainer :Var型における型情報を表示してくれたりと便利

IntelliJ IDEA ショートカット

便利なショートカットを記載しておきます。

カテゴリ コマンド 概要 詳細
検索 Shift + Shift 全て検索 プロジェクト内のファイル名、クラス名、シンボル名(変数、メソッド等)をインクリメンタル検索。クラス検索(Ctrl + N)で詳細検索
ナビゲーション Ctrl + Alt + 左右キー ナビゲーションのUndo/Redo
Alt + 左右キー タブの左右移動
表示 Ctrl + P メソッドのパラメータ一覧表示
Ctrl + Q クラス/メソッド/変数のドキュメント表示
Alt + Enter 修正候補表示
Ctrl + Alt + ← or → ジャンプして移動した履歴を戻る/進む
Ctrl + F12 メソッド一覧を開く
Ctrl + H 型階層を開く
編集 Ctrl + w 拡張選択 メソッドの引数一覧、メソッド、ステートメント、ブロックという形で選択された箇所が拡張
Shift + F6 名前変更
設定 Ctrl + Alt + S 設定を開く

参考URL

docker-compose コマンド

よく使うコマンドを列挙していきます。

コンテナ起動

$ docker-compose up -d # バックグラウンド起動

volume

docker volumeを削除する

// docker-compose upで起動している場合は停止する
$ docker-compose down --rmi all --volumes

Private メソッドをテストコードで実行する

テストコード内でprivateメソッドを呼ぶことができず、publicにしたくなります。
そんなときはリフレクションを使って、privateメソッド呼び出すことでテストを書くとよいかも

getDeclaredMethodはprivateメソッドでも取得可。getMethodでは、pravateメソッドを取得できない。

    private  TestService testService;
    @Test
    void testClassName() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        // TestService内のmethodNameというメソッドを取得
        var method = TestService.class.getDeclaredMethod("methodName", String.class);
        // privateメソッドへのアクセス権限付与
        method.setAccessible(true);
        // メソッド実行、テスト
        assertEquals("resultValue", method.invoke(testService, param1, param2));
    }