きゃべログ

プログラミングや電子工作などについての記事がほとんどです

Android Eclipseを立ち上げたとき,いくつかのプロジェクトにエラーがつく現象

0 件のコメント
さあプログラムを組むぞとEclipseを起動すると,パッケージマネージャが真っ赤になってしまうことがあり,げんなりすることがあります.
Problemsビューでエラーを確認すると,どのプロジェクトを見ても,エラーの内容は
The project was not built since its build path is incomplete.
というようなもの.
以下のサイトで解決法が掲載されていました.
android - Yet Another 'The project was not built since its build path is incomplete' - Stack Overflow

要約すると

[File] - [Switch Workspace] (日本語の場合[ファイル] - [ワークスペースの切り替え] )から,異なるワークスペースに切り替え,再び元のワークスペースに切り替えるだけです.
私は今回きれいにエラーが全て無くなったので,お困りの方は一度試してみてください.
スマートにプログラミング Android入門編 第4版 SDK5.x Lollipop対応
堀切 堤
リックテレコム
売り上げランキング: 60,786

0 件のコメント :

コメントを投稿

良いコードへの道

0 件のコメント
読んでいて面白いサイトを見つけました.
良いコ-ドへの道―普通のプログラマのためのステップアップガイド:連載|gihyo.jp … 技術評論社
コードの可読性や性能を向上するためにはどんなコーディングを心がけるべきかを書いた連載記事です.現在は「良いコードを書く技術」というタイトルで本も出版されているようです.そこから気になったキーワードについて調べました.

ブロックスコープ

スコープとは変数が使用できる範囲のことを言います.ブロックスコープというのは,定義された場所からそのブロックが終わるまで,変数が使用可能ということです.
このルールはJavaやCなど多くの言語で使用されているのですが,JavaScriptにはブロックコープがないようです.普段JavaScriptを自分で書いたりしないので,知ってちょっと驚きました.

アクセス修飾子

フィールド変数などのスコープを指定するものです.public,private,package private,protectedが存在します.基本的にprivateで用いるのが基本らしいです.フィールド変数に外部や下位クラスからアクセスしたい場合には,セッタ・ゲッタなどのアクセサメソッドを用意して使うと良いです.

//フィールド変数
private int count

//セッタ
public void setCount(int count){
  this.count = count;
}

//ゲッタ
public int getCount(){
  return this.count
}

こんな感じで指定してやります.
アクセス修飾子を指定しない場合,JavaやC#ではprivateになるようです.

final変数の使用上の注意

final変数を使用することで,クラス変数を定数として使用することが可能になります.finalを付加することで外部からの値の書き換えが不可能になるため,アクセス範囲をpublicとしても比較的安心です.
しかし,変更が不可能になるのは値のみであるため,参照型変数の場合は参照先の値を変更することで実質的に書き換えが可能になってしまうので注意が必要です.もし参照型をfinal変数として使用する場合には値の書き換えが不可能なコレクションを使う必要があります.
【参考】
final変数とは : JavaA2Z

ユーティリティクラス

知らない用語だったので検索したところ,噛み砕いてわかりやすく書いてあるサイトを見つけたので掲載しておきます.ユーティリティクラスの定義は,メンバが全てstaticなクラスです.実際に作る場合にはインスタンスを作らせないように,privateなコンストラクタを実装する必要があります.
【参考】

クラスのネスト

クラスの作り方を変えてコードの保守性を向上する方法は,クラスを別ファイルに分ける以外にも,クラスをネストすることによる方法も存在します.スコープの管理をしっかり理解していれば,有効に働きそうです.

インナークラス

エンクロージング型のインスタンスに関連付ける必要があるため,そのインスタンス変数にアクセスする際には利用しやすい.わかりやすく書けば,ネストしたクラスで,かつ非staticなクラスです.
どういうものかわかっても使いどころが良くわからなかったのですが,GUIアプリケーションのイベントハンドラ定義などに使えるようです.使い道がやはりわからないので教えて偉い人….

無名(匿名)クラス

クラスに名前を付けずに利用するクラスのことをいいます.
コンストラクタが使えず,継承やインターフェースの実装なども行えないなど,制約が多いです.単純かつ,コンストラクタが必要でない,再利用しないクラスに有効です.

【参考】
話題がバラバラなのでまとめようにもまとめづらいのですが,保守性・可読性の高いコードを書くためには多くの基礎知識がいるのだと感じました.色んなコードを読んでいくうちにこういうテクニックが使えるようになったらいいなあ.

0 件のコメント :

コメントを投稿

C# ArrayListとListの違い

0 件のコメント

C#で可変長のリスト・コレクションを使うときに,ArrayListとListの使い分けってどうするのだろうかと疑問に思っていました.調べたら色々見つかったのでまとめました.

作って覚えるVisual C# 2015 デスクトップアプリ入門
荻原 裕之 宮崎 昭世
秀和システム
売り上げランキング: 2,540

ArrayList

言わずと知れた,可変サイズの一次元リスト・コレクションです.
.NET Framework 1.xで大活躍のコレクションですが,もちろん.NET Framework 2.0においても使用は可能です.

特色

ArrayListには格納するオブジェクトの型名の指定をせず,格納されるときにすべてObject型にアップキャストされる.(ボックス化される.)
【メリット】
同じArrayListに何でも突っ込める.
【デメリット】
値を呼び出して使用する際にはキャストが必要である.
foreach文などで順に処理する際,異なる方のオブジェクトが混ざっているとエラーになってしまうことがある.

List<T>

.NET Framework 2.0で,ジェネリックの仕組みを使ったListジェネリッククラスが導入されました.

特色

型の指定をしてインスタンス化します.
【メリット】
値を呼び出して使用する際,キャストが不要である.

おまけ:LinkedList

こちらも.NET Framework 2.0で実装されました.

特色

データの要素をリンクリストに繋げていくリスト構造です.
要素の挿入・削除がある場合,内部的にはリンクの付け替えをするだけです.
【メリット】
値の挿入・削除が高速に行える.
【デメリット】

インデックスによる参照ができないため,ランダムなアクセスが苦手.

猫でもわかるC#プログラミング 第3版 (猫でもわかるプログラミング)
粂井 康孝
SBクリエイティブ
売り上げランキング: 44,075

考察

明確に使う型が決まっている場合にはArrayListを使うより,Listを使う方が良いです.
多くの場合格納する型は決まっていると思うので,結局普段はListを使えばいいのかなと思います.
LinkedListとListの使い分けについては,要素の挿入や削除が多い場合はLinkedList,要素の参照が多い場合はListという感じでしょうか.
パフォーマンスを向上するためにも,こういったチューニングが自然にできるようになりたいですね.わかりやすい内部的な仕組みに関する説明は@ITに良いページがあったので以下に挙げておきます.

参考サイト


0 件のコメント :

コメントを投稿

Bloggerはじめました

0 件のコメント
以前までサーバを借りてちょっとしたwebページを運用していたのですが,こまめにHTMLやCSSをいじるのが面倒に思えてきたので,Bloggerに移行することにしました.
以前はデザインの自由度に拘りすぎていたのですが,今となってはそんなに気になりません.ゆるーく更新していきますので応援よろしくお願いします.応援されなくても適当にやってます.

0 件のコメント :

コメントを投稿