[Salesforce]VSCodeによる開発

開発環境としてVSCodeのExtensionを用いることについて共有します。

  1. Salesforce CLIをインストール
sfdx plugins --core

2.VS Codeに拡張機能のインストール

https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode

3.ローカルにプロジェクトを作成

コマンドパレットを開き(Widnowsの場合:Ctrl+Shift+P / Macのばあい:Cmd+Shift+P)、SFDX: Create Project with Manifestを選択し、プロジェクト名入力しEnterする。

保存場所を選択する。

例えば、Projectというフォルダ名を指定すると、指定したProjectフォルダの下に、入力したプロジェクト名のフォルダに新たに作成されます。

作成したProjectの下に以下のフォルダ、ファイルが作成されます。
.sfdx
.vscode
config
force-app
manifest
.forceignore
.gitignore
.prettierignore
.prettierrc
README.md
sfdx-project.json

4.組織に接続

表示> コマンドパレットから、SFDX: Authorize an Orgを選択、組織の種類(Sandbox/Production)を選択して、プロジェクト名称を入力する。

ブラウザが起動し、その組織にログインする。

アクセスを許可しますか? が表示される、「許可」ボタン押下する。

VSCodeで以下のように出力されれば接続できています。

Successfully authorized xxxx@xxx.xxx with org ID 00Dxxxxxxxxxxxxxxx
You may now close the browser

5.メタデータの取得とデプロイ

force-appのエクスプローラで右クリックするとSFDX: Retrieve Source from OrgとSFDX: Deploy Source to Orgが利用できる。
特定のフォルダやファイルに対してこのコマンドを選択すると、そのフォルダやファイルに対してのみ取得・デプロイされる。

6.ファイル保存時の自動デプロイを有効化する

.vscode/settings.jsonに"salesforcedx-vscode-core.push-or-deploy-on-save.enabled": trueを追加し、VS Codeを再起動する。

[Java]内部クラス(インナークラス)

内部クラスについて共有します。

1.内部クラスとは

内部クラスとは、クラスの中にクラスを定義する。

内部クラスはメンバーと同じように扱うことができます。メンバーのようにprivate、protected、publicといったアクセスレベルを付与することができます。

なお、内部クラスを持つクラスのことを外部クラスといいます。

2.内部クラス使い方

// 外部クラス
class OuterClass {
    private String str = "OuterClass Field";
    
    // 内部クラス
    class InnerClass {
        public void innerMethod() {
            System.out.println(str);
        }
    }
}
 
public class Main {
 
    public static void main(String[] args) {
        // 外部クラスインスタンス生成
        OuterClass oc = new OuterClass();
        // 外部クラスオブジェクトから内部クラスインスタンス生成
        OuterClass.InnerClass ic = oc.new InnerClass();
        ic.innerMethod();
    }
 
}

3.staticな内部クラスの使い方

参考として、 staticな内部クラスから外部クラスの非staticなメンバーにはアクセスできません

// 外部クラス
class OuterClass {
    // staticフィールド
    private static String str = "OuterClass Field";
    
    // static内部クラス
    static class InnerClass {
        public void innerMethod() {
            System.out.println(str);
        }
    }
}
 
public class Main {
 
    public static void main(String[] args) {
        // static内部クラスインスタンス生成
        OuterClass.InnerClass ic = new OuterClass.InnerClass();
        ic.innerMethod();
    }
}