これは、Javaを勉強していて、フィールド(地下鉄、ミニバス、カフェなど)でサンプルコードの作業を表示するために常にPCを持っているわけではない人に役立つユーティリティプロジェクトになります。
OCJP認定の準備をしていたときに、この共有を作成する必要が生じました。 それを正常に完了した後、レビューのためのアイデアの成果を尊敬されるhabrasocietyのメンバーに提供することにしました。
私はラップトップを持っていないので、お茶を飲みながらキッチンに座ってスマートフォンでコード例を実行すると便利です。
たまたま、ほとんどのトレーニング例は通常、コンソールプログラムの形式で提供されています。 素晴らしいAIDEツールを使用すると、Eclipseプロジェクトに基づいてAndroidアプリケーションを構築できます。 残念ながら、コピーアンドペースト方式を使用してコンソールの例を実行するには機能が不十分です。
ポイントは小さい-I / OフローをUIコントロールにリダイレクトする:
private static OutputStream mOutputStream = new OutputStream() { @Override public void write(int b) { MainActivity.getInstance().write((byte)b); } }; @Override public void onCreate(Bundle savedInstanceState) { ... System.setOut(new PrintStream(mOutputStream)); System.setErr(new PrintStream(mOutputStream)); ... }
コンソールプログラムは、アクティビティ
onResume()
ハンドラーとは別のスレッドで開始されます。
@Override public void run() { try { // // // Program.main(new String[0]); } catch (Throwable ex) { // setErrorColor(); ex.printStackTrace(); } }
ここでは、コマンドライン引数-古き良き引数を指定できます。 例
BankTellerSimulation
を10秒間開始する:
BankTellerSimulation.main(new String[] { "10" });
いくつかのスレッドの作業がサポートされています(
SimpleThreadsTest
):
HorseRace
と
BankTellerSimulation
は、より複雑なマルチスレッドアプリケーションの例です( Thinking in Javaの4th Ed by Bruce
HorseRace
から
BankTellerSimulation
)。
ランタイムエラー
ErrorTest
例:
class FuuuuuuException extends RuntimeException { public FuuuuuuException(String message) { super(message); } } ... throw new FuuuuuuException("!!!TROLLFACE!!!");
例外が発生します:
入る
最後に、完全を期すために、コンソール入力が追加されました。 これまでのところ、Androidユーザーインターフェースに関する私の知識はあまり良くありません。 どういうわけか私は
EditText
をプッシュすることができましたが、結果は完璧ではありません:)
行入力プロンプト(
ReadingInputTest
):
次:
メニュー機能
Exitは、
System.exit(0)
介してプロセスをシャットダウンします。
「ワンタイム」プログラム。 再起動が繰り返されることはありません(静的フィールドの値のクリーニングに煩わされたくありませんでした)。
クリアを大きな秘密にしたもの。
動作しないもの
•のJavaを
assert
ます。 つまり オペレーター
assert "Cat".equals("Dog");
例外
java.lang.AssertionError
はスローされません。 JUnitのアサーターと混同しないように-すべては問題ありません!)
•
Console
クラス。
•入力フィールドが常にフォーカスをキャッチするとは限りません。
プロジェクトファイル
ソースはGitHubから取得するか、Android StudioおよびEclipse用のプロジェクトを含むzipアーカイブをダウンロードできます。
説明されている例は
com.examples
パッケージにあります。 すべての例は、通常のPCで変更なしで実行できます(どこでも実行できます!)。