回答編集履歴

2

誤記訂正

2017/12/15 06:16

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -54,7 +54,7 @@
54
54
 
55
55
  ```
56
56
 
57
- (2)のケースではa, b, cをそれぞれ選択することができてRefactorでaをrenameしたりmoveしたりできますが(1)の状態はa, bノード表示されずcパッケージだけをa.b.cとして表示するという仕様です。ゆえにa.b.cをrenameしようとしても「cをどうrenameするか」という操作と見做されます。
57
+ (2)のケースではa, b, cをそれぞれ選択することができてRefactorでaをrenameしたりmoveしたりできますが(1)の状態はa, bノード表示されずcパッケージだけをa.b.cとして表示するという仕様です。ゆえにa.b.cをrenameしようとしても「cをどうrenameするか」という操作と見做されます。
58
58
 
59
59
 
60
60
 

1

追記

2017/12/15 06:16

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -15,3 +15,79 @@
15
15
 
16
16
 
17
17
  でできると思います。最近のちゃんとしたIDEには多分ついている気がするので「リファクタリング」というキーワードを覚えておくとよいと思います。
18
+
19
+
20
+
21
+ ---
22
+
23
+ 追記:回答コメントを拝見して気づいたこと
24
+
25
+
26
+
27
+ a.b.c => aa.bb.ccへのパッケージ変更ですが・・・AndroidStudioのプロジェクトビューはこういう感じになっていますね
28
+
29
+
30
+
31
+ ```
32
+
33
+ (1) aの下にパッケージbしかなくbの下にもcしかない場合のプロジェクトビュー
34
+
35
+
36
+
37
+ + a.b.c => package階層が一つのノードとして表示されるが・・・
38
+
39
+
40
+
41
+ (2) aの下に別のパッケージb2がありbの下に別のソースb.javaがある場合
42
+
43
+
44
+
45
+ + a
46
+
47
+ + b
48
+
49
+ + c <== (1)でのa.b.cはこのノードを指す
50
+
51
+ + b.java
52
+
53
+ + b2
54
+
55
+ ```
56
+
57
+ (2)のケースではa, b, cをそれぞれ選択することができてRefactorでaをrenameしたりmoveしたりできますが(1)の状態はa, bノードを表示されずcパッケージだけをa.b.cとして表示するという仕様です。ゆえにa.b.cをrenameしようとしても「cをどうrenameするか」という操作と見做されます。
58
+
59
+
60
+
61
+ パッケージのRefactoring(rename/move etc.)はあくまで一つのパッケージ階層に対してしか行えないのでそれを踏まえて操作を考えるというべきでした。
62
+
63
+
64
+
65
+ 最初に戻ってa.b.c => aa.bb.ccにするなら最小でも3つの操作が必要だと思います。
66
+
67
+ (m1) aa.bbを新規に追加
68
+
69
+ (m2) a.b.cを選びRefactor>Moveでaa.bbへ移動
70
+
71
+ (m3) aa.bb.cをRefactor>Renameでaa.bb.ccへ変更
72
+
73
+
74
+
75
+ トップ階層のパッケージjp.co.company.facility => com.company.facilityに変更するといった場合も上記と同様の考え方でcompanyパッケージをjp.co=>comへ移動としたいのですが、そのままではcompanyパッケージを操作できないので
76
+
77
+
78
+
79
+ (m1) jp.coの下に何かのソースを追加
80
+
81
+  これも直接はできないので一旦jp.co.company.facilityの下にダミーのソースを追加してからそのソースをjp.coにMoveすると前述の(1)から(2)に表示が変わるのでcompanyパッケージの操作ができるようになります
82
+
83
+ (m2) comパッケージを追加
84
+
85
+ (m3) jp.co.companyをcomパッケージへ移動
86
+
87
+ 表示上はcompanyノードが表示されているはずなのでそれを選びRefactor>Moveでcomの下へ移動する
88
+
89
+ (m4) ダミーのソースを削除
90
+
91
+
92
+
93
+ こんな手順になると思います。ポイントはあくまでRefactorにより「全ての整合性を取った状態でプロジェクト構造を変更する」ことですが、パッケージ階層の変更は複数のRefactor操作の組み合わせとする必要があることを踏まえ、操作手順を考えないといけないみたいです。