ジェネリックとデリゲート

ジェネリクス型

  • クラスのメンバを宣言するときに,

public class SomeClass{

	private strig member1;
	private int member2;

	someClass(){
		this.member1="hoge";
		this.member2=7;
	}
}

としてしまうと,member1member2には,それぞれStringintしか使用できなくなる。

  • ジェネリクスを使用すると,メンバ変数の型をインスタンス時に指定することができる。

public class SomeClass<T1, T2>{

	private T member1;
	private T2 member2;

}

public static void main(String args[]){
	SomeClass<String, int> obj = new SomeClass<String, int>();
}

デリゲートについて

  • 匿名関数
    • メソッドの型

// 単なる型
public delegate void TestMethod(String s);

  • 使用方法は,作成した型で変数を作成し使用する。

public delegate void TestMethod(String s);

TestMethod test = delegate(String msg){
	MessageBox.Show(msg)
};

test("test");
test("hoge");
test("fuga");

  • .NETのフォームのイベントハンドラ等で使用されている。
  • 引数を使用しない匿名関数は,Actionという名前で宣言されている。

Action act = delegate(){
	MessageBox.Show("Action");
}

act()

ラムダ式

  • いちいちdelegateを書くのが面倒くさいので,ラムダ式を使用する。

TestMethod test = delegate(String msg){
	MessageBox.Show(msg)
};

TestMethod test = (nsg) => {
	MessageBox.Show(msg)
};

TODO: C#の部分をJavaに置き換え

以上

めもまとめ

2018年 2月 2日 金曜日 15:57:48

就業中メモ

ツールチップ

  • Tips

CSS,HTMLでTool Tip実装

2018年 2月 5日 月曜日 11:11:16

Java

JavaにおけるCastについて

  • Javaには変数のデータ型を変換することができる“型キャスト”と呼ばれる機能が存在する。

書式

  • (type)var
int integerVariant=0;
(String)integerVariant;

注意点

  • 小さな型を大きな型に変換することは可能である。(拡大変換)
  • しかし、大きな型を小さな型に変換する際には、正しく変換されるとは限らないのである(縮小変換)

注意点2

下記は可能 (※ HamsterはAnimalのサブクラス)

Animal animalHamster = new Hamster();
Hamster hamukichi = (Hamster)animalHamster;

下記は不可能 (※ tamaの実態はcatオブジェクトであるため)

Animal tama = new Cat();
Hamster hamukichi = (hamster)tama;

下記で解消可能

Animal tama = new Cat();
if ( cat interfaceof Hamster) {
    Hamster hamukichi = (Hamster)tama;
}

三項演算子

  • ifの省略形だよ

書式

  • 条件式 ? Trueの場合に実行する式 : Falseの場合に実行する式

indicatorStateについて

  • indicatorState -> 状態インジケータ

2018年 2月 5日 月曜日 11:11:16

Java

JavaにおけるCastについて

  • Javaには変数のデータ型を変換することができる“型キャスト”と呼ばれる機能が存在する。

書式

  • (type)var
int integerVariant=0;
(String)integerVariant;

注意点

  • 小さな型を大きな型に変換することは可能である。(拡大変換)
  • しかし、大きな型を小さな型に変換する際には、正しく変換されるとは限らないのである(縮小変換)

注意点2

下記は可能 (※ HamsterはAnimalのサブクラス)

Animal animalHamster = new Hamster();
Hamster hamukichi = (Hamster)animalHamster;

下記は不可能 (※ tamaの実態はcatオブジェクトであるため)

Animal tama = new Cat();
Hamster hamukichi = (hamster)tama;

下記で解消可能

Animal tama = new Cat();
if ( cat interfaceof Hamster) {
    Hamster hamukichi = (Hamster)tama;
}

三項演算子

  • ifの省略形だよ

書式

  • 条件式 ? Trueの場合に実行する式 : Falseの場合に実行する式

indicatorStateについて

  • indicatorState -> 状態インジケータ

2018年 2月 7日 水曜日 09:19:38

2018年 2月 8日 木曜日 11:03:23

Vim

カーソルの単語を検索する

  • *: カーソルの単語を検索
  • #: カーソルの単語を上方向に検索
  • vim

    インデント

    コマンド    説明
    =   選択行のインデント修正
    ctrl-t, ctrl-d  挿入モードでインデントを追加/削除
    >>  インデント
    <<  インデントを削除
    :set shiftwidth=4   インデント幅をスペース4つ分にする
    :set autoindent オートインデントをON
    :set smartindent    スマートなオートインデントをON

    Java

    Rectangle

    • Rectangle=長方形

    // 座標 (a,b)に(幅=c、高さ=d)のRectangleを生成Rectangle hoge = new Rectangle(a,b,c,d)`

    Window.setBounds(int x, int y, int width, int height)

    • 位置の調整 & サイズ変更
    • JFrameにも適応可能

    Window.setSize(int width, int height)

    • サイズ変更
    • JFrameにも適応可能

    BevelBorder

    • bevel=斜面
    • 窪みを描画するクラス BevelBorder java.lang.Object 上位を拡張 javax.swing.border.AbstractBorder 上位を拡張 javax.swing.border.BevelBorder —

    Qt

    Loaderの使い方

    必要とされたときに、コンポーネントを作成することができる。

    import QtQuick 2.0
    
    Item {
        width: 200; height: 200
    
        Loader { id: pageLoader }
    
        MouseArea {
            anchors.fill: parent
            onClicked: pageLoader.source = "Page1.qml"
        }
    }
    
    

    その他

    JSPとは

    Webサーバ(ホームページのファイルを置くサーバ)上でお仕事をするJavaのプログラムで、HTMLファイルとJavaのプログラムが合体したもの

    16進数のカラーコードの意味

    • #000000= RGB(0,0,0)
    • RGBを16進数で表記しているだけ

Javaのパースとか

# プログラムするときにいつも調べるので備忘

変換前の型 変換後の型 書き方例
int double (double)1
double int (int)1.0
String double Double.parseDouble(“1.0”)
double String String.valueOf(1.0)
String(小数点表記) BigDecimal.valueOf(0.00012).toPlainString();
String(小数点以下の桁数の指定)

 

以上