お世話になります。
メソッド化について質問があり、ご教授いただければと思います。
処理が全く同じものをメソッド化にすることはできるのですが、
少し、変数名や値が異なるもの処理をメソッド化する方法がわかりません。
以下ソース
public static void main(String[] args) throws IOException{
String line = ""; BufferedReader br = null; String dir = (args[0]); dir = dir + "\\"; File branchFile = new File(dir + BRANCH); if (!branchFile.exists()) { System.out.println("店舗ファイルが存在しません"); return; } List<Map<String, String>> branchs = new ArrayList<Map<String, String>>(); try { br = new BufferedReader(new FileReader(branchFile)); line = br.readLine(); if (line == null){ System.out.println("店舗ファイルの中身が空です"); return; } while ((line = br.readLine()) != null) { String[] datas = line.split(","); if (!datas[0].matches("^[0-9]{3}$") || datas.length != 2) { System.out.println("店舗ファイルのフォーマットが不正です"); return; } Map<String, String>map = new HashMap<String, String>(); map.put("branchCode", datas[0]);//keyがbranchCodeでvalueがdatas[0] map.put("branchName", datas[1]); branchs.add(map); } } catch (IOException e) { e.printStackTrace(); return; } finally { try { br.close(); } catch (Exception e) { } } //商品定義の処理 File itemFile = new File(dir + ITEM); if (!itemFile.exists()) { System.out.println("商品ファイルが存在しません"); return; } List<Map<String, String>>items = new ArrayList<Map<String, String>>(); try { br = new BufferedReader(new FileReader(itemFile)); line = br.readLine(); if (line == null){ System.out.println("商品ファイルの中身が空です"); return; } while ((line = br.readLine()) != null) { String[] datas = line.split(","); if (!datas[0].matches("^[0-9a-zA-Z]{8}") || datas.length != 2) { System.out.println("商品ファイルのフォーマットが不正です"); return; } Map<String,String>map = new HashMap<String, String>(); map.put("itemCode", datas[0]); map.put("itemName", datas[1]); items.add(map); } } catch (IOException e) { e.printStackTrace(); return; } finally { try { br.close(); } catch (Exception e) { } }
}
という処理をメインメソッドの中で行っているのですが、
比べると処理はほぼ同じです。このほぼ同じ処理をメソッドにすることは可能でしょうか?
可能ならば、どこをメソッド化できますか?
稚拙な質問内容ではありますが、ご回答お願い致します。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/08 08:05