質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

解決済

「 The left-hand side of an assignment must be a variable 」の原因が知りたい

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

2回答

-1評価

0クリップ

872閲覧

投稿2021/09/04 07:18

提示コードのコメント部の/////の内部の2つのコードですが以下のエラーが発生します。これは何が原因なのでしょうか?

FileControl.ProcessStatus //enum型です

参考サイト: http://chronicles.blog.ryanrampersad.com/2012/02/java-the-left-hand-side-of-an-assignment-must-be-a-variable/

参考サイト: https://ja.stackoverflow.com/questions/20711/the-left-hand-side-of-an-assignment-must-be-a-variable-%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E5%87%BA%E3%82%8B

txt

「 The left-hand side of an assignment must be a variable 」

java

import java.io.IOException; import java.io.File; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.util.ArrayList; //import java.util.Arrays; import java.util.Collections; import java.util.List; /* ########################################## * # ファイル操作クラス * ##########################################*/ public class FileControl { //処理の進行状況 public enum ProcessStatus { Start, LoadFilePath, //パスを読み込み InputFilePaty, //パスを設定 LoadFileImage, //画像を読み込み GeneratePage, //ページを生成 GeneratePDF, //PDFに書き込み SaveFile, //ファイルを保存 Completion, //全て完了 } //ファイルタイプ public enum FileType { Directory, //ディレクトリ File, //単一の画像ファイル Invalid //対応していないファイル } //ディレクトリを取得 public static void GetDirectory(File dirName,List<List<Image>> outList,int splitNum) { List<String> strList = new ArrayList<>(); //System.out.println("ああああ "+ dirName.listFiles().length); //パスをロード for(int i = 0; i < dirName.listFiles().length; i++) { strList.add(dirName.listFiles()[i].getPath()); // System.out.println("Load FilePath: " + dirName.listFiles()[i].getPath()); //デバッグ } Collections.sort(strList); //順番にソート //パスを設定 int num = strList.size() / splitNum; //分割の枚数 int notMuch = strList.size() % splitNum; //余り if( (float)(strList.size() % splitNum) > 0.0f ) { for(int i = 0; i< splitNum; i++) { outList.add(new ArrayList<>()); if( i == (splitNum - 1) ) { for(int j = 0; j < num + notMuch; j++) { outList.get(outList.size() - 1).add(new Image(0,0,strList.get(num * i + j))); // System.out.println("Input FilePath: " + strList.get(num * i + j)); //デバッグ } } else { for(int j = 0; j < num; j++) { outList.get(outList.size() - 1).add(new Image(0,0,strList.get(num * i + j))); // System.out.println("Input FilePath: " + strList.get(num * i + j)); //デバッグ } } } } else { for(int i = 0; i< splitNum; i++) { outList.add(new ArrayList<>()); for(int j = 0; j < num; j++) { outList.get(outList.size() - 1).add(new Image(0,0,strList.get(num * i + j))); // System.out.println("Input FilePath: " + strList.get(num * i + j)); //デバッグ } } } } //画像をロード public static void LoadImage(List<Image> outList) { for(int i = 0; i < outList.size(); i++) { try { BufferedImage b = ImageIO.read(new File(outList.get(i).path)); // System.out.println("LoadFileImage: " + outList.get(i).path + " --- size ---> ("+ b.getWidth() + " , " + b.getHeight() + ")"); //デバッグ outList.get(i).width = b.getWidth(); outList.get(i).height = b.getHeight(); b = null; } catch(NullPointerException e) { } catch (IOException e) { e.printStackTrace(); } } } //ファイルタイプを取得  public static FileType GetFileType(File file) { //ファイルかディレクトリかを選別 if(file.exists() == true) { if(file.isFile() == true) { String extension = file.getName().substring(file.getName().lastIndexOf(".")); if(extension.equals(".png") || extension.equals(".jpg") || extension.equals(".jpeg")) { return FileType.File; } } else { return FileType.Directory; } } else { System.out.println("対応形式ではりません: " + file.getName()); return FileType.Invalid; } return FileType.Invalid; } }

java

import java.io.IOException; import java.io.File; import java.util.List; import java.util.ArrayList; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import org.apache.pdfbox.pdmodel.PDDocument; //import org.apache.pdfbox.pdmodel.PDPage; /* * ############################### * ディレクトリを変換 * ############################### */ public class ConvertDirectory { static List<FileControl.ProcessStatus> status = new ArrayList<>(Main.threadNum); //進行状況 File path; //ディレクトリパス int threadNum; //スレッド数 List<Converter> dirList = new ArrayList<>(); //変換 List<List<Image>> image = new ArrayList<>(); //画像 ExecutorService pool; //スレッドプール //デバッグ用 処理時間 long startTime; //開始タイム long endTime; //終了タイム //コンストラクタ public ConvertDirectory(File p,int t,ExecutorService es) { path = p; threadNum = t; pool = es; } public void Start() { FileControl.GetDirectory(path,image,threadNum); //パス取得 for(int i = 0; i < threadNum; i++) { dirList.add(new Converter(image.get(i),i)); } startTime = System.currentTimeMillis(); //デバッグ用 開始時間 //変換 int i = 0; for(Converter con : dirList) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////// status.get(i) = FileControl.ProcessStatus.Start; /////////////////////////////////////////////////////////////////////////////////////////////////////////////// pool.submit(con); i = 0; } //System.out.println("A: " + status.get(0)); //System.out.println("B: " + status.get(1)); //System.out.println("C: " + status.get(2)); } public void End() { try { List<PDDocument> document = new ArrayList<>(); for(Converter d : dirList) { document.add(d.getDocument()); } for(int i = 1; i < document.size(); i++) { for(int j = 0; j < document.get(i).getNumberOfPages(); j++) { document.get(0).addPage(document.get(i).getPage(j)); } } document.get(0).save( path.getAbsolutePath() + ".pdf"); //保存 //document.close for(Converter d : dirList) { d.getDocument().close(); } } catch(IOException e) { e.printStackTrace(); } endTime = System.currentTimeMillis(); //デバッグ用 終了時間 System.out.println("処理時間: " + (endTime - startTime)); } }

java

import java.io.IOException; import java.io.File; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.util.concurrent.Callable; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; /* ################################################################## * PDF 生成 ディレクトリ * ##################################################################*/ //public class Converter implements Callable<FileControl.ProcessStatus> public class Converter implements Runnable { int threadNumber; //スレッド番号 PDDocument document; List<Image> convList = new ArrayList<>(); //document public PDDocument getDocument() { return document; } //PDFを生成 private void GeneratePDF(List<Image> fileList) { try { List<PDPage> page = new ArrayList<>(); // status = FileControl.ProcessStatus.LoadFileImage; FileControl.LoadImage(convList); //画像をロード // status = FileControl.ProcessStatus.GeneratePage; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ConvertDirectory.status.get(0) = FileControl.ProcessStatus.GeneratePage; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// for(Image image : fileList) { PDRectangle rec = new PDRectangle(); rec.setUpperRightX(0); rec.setUpperRightY(0); rec.setLowerLeftX(image.width); rec.setLowerLeftY(image.height); //System.out.println(image.path + "Page Generate --- size ---> ("+ image.width + " , " + image.height + ")"); page.add(new PDPage(rec)); document.addPage(page.get(page.size() -1)); } //status = FileControl.ProcessStatus.GeneratePage; for(int i = 0; i < fileList.size(); i++) { PDImageXObject xImage = PDImageXObject.createFromFile(fileList.get(i).path,document); PDPageContentStream stream = new PDPageContentStream(document,page.get(i)); stream.drawImage(xImage, 0,0); System.out.println( "PDF Generate: "+ fileList.get(i).path); stream.close(); } //status = FileControl.ProcessStatus.Completion; //document.save(filePath.getPath() + "\" + filePath.getName() + ".pdf"); //System.out.println("--->: " + filePath.getPath() + "\" + filePath.getName() + ".pdf"); //document.close(); } catch(IOException e) { e.printStackTrace(); } } //コンストラクタ public Converter(List<Image> i,int n) { threadNumber = n; document = new PDDocument(); convList = i; } //実行 @Override public void run() { GeneratePDF(convList); //生成 } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。