Que faire lorsque vous pensez que vous ne pouvez pas Groovy-> Java avec IntelliJ IDEA CE

** Pour passer à la conclusion à partir de [ici](#% E7% B5% 90% E8% AB% 96) **

introduction

Un jour, quand j'ai essayé de convertir Groovy en Java avec Convert Groovy to Java, cela n'a pas fonctionné du tout. Il n'y a pas de problème avec le code lui-même, la cause est inconnue, donc quand j'ai regardé le journal, j'ai eu cette erreur ...

java.lang.UnsupportedOperationException
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.TypeWriter.visitDisjunctionType(TypeWriter.java:155)
	at com.intellij.psi.PsiDisjunctionType.accept(PsiDisjunctionType.java:114)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.TypeWriter.writeType(TypeWriter.java:72)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.TypeWriter.writeType(TypeWriter.java:49)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.CodeBlockGenerator.writeVariableWithoutSemicolonAndInitializer(CodeBlockGenerator.java:481)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.CodeBlockGenerator.visitCatchClause(CodeBlockGenerator.java:534)
	at org.jetbrains.plugins.groovy.lang.psi.impl.statements.GrCatchClauseImpl.accept(GrCatchClauseImpl.java:45)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.CodeBlockGenerator.visitTryStatement(CodeBlockGenerator.java:523)
	at org.jetbrains.plugins.groovy.lang.psi.impl.statements.GrTryCatchStatementImpl.accept(GrTryCatchStatementImpl.java:43)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.CodeBlockGenerator.visitStatementOwner(CodeBlockGenerator.java:160)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.CodeBlockGenerator.generateCodeBlock(CodeBlockGenerator.java:152)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.CodeBlockGenerator.generateMethodBody(CodeBlockGenerator.java:119)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.ClassItemGeneratorImpl.writeMethod(ClassItemGeneratorImpl.java:159)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.ClassGenerator.writeAllMethods(ClassGenerator.java:149)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.ClassGenerator.writeMembers(ClassGenerator.java:124)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.ClassGenerator.writeTypeDefinition(ClassGenerator.java:106)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.ConvertToJavaProcessor.performRefactoring(ConvertToJavaProcessor.java:93)
	at com.intellij.refactoring.BaseRefactoringProcessor.lambda$doRefactoring$11(BaseRefactoringProcessor.java:475)
	at com.intellij.refactoring.BaseRefactoringProcessor.lambda$doRefactoring$12(BaseRefactoringProcessor.java:486)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runWriteActionWithProgressInDispatchThread$15(ApplicationImpl.java:980)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:170)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:548)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:493)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:94)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:157)
	at com.intellij.openapi.progress.util.PotemkinProgress.runInSwingThread(PotemkinProgress.java:167)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithProgressInDispatchThread(ApplicationImpl.java:980)
	at com.intellij.refactoring.BaseRefactoringProcessor.doRefactoring(BaseRefactoringProcessor.java:486)
	at com.intellij.refactoring.BaseRefactoringProcessor.lambda$execute$4(BaseRefactoringProcessor.java:314)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:149)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:109)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:99)
	at com.intellij.refactoring.BaseRefactoringProcessor.execute(BaseRefactoringProcessor.java:312)
	at com.intellij.refactoring.BaseRefactoringProcessor.doRun(BaseRefactoringProcessor.java:243)
	at com.intellij.openapi.fileEditor.impl.NonProjectFileWritingAccessProvider.disableChecksDuring(NonProjectFileWritingAccessProvider.java:181)
	at com.intellij.refactoring.BaseRefactoringProcessor.run(BaseRefactoringProcessor.java:553)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.ConvertToJavaHandler.invokeInner(ConvertToJavaHandler.java:73)
	at org.jetbrains.plugins.groovy.refactoring.convertToJava.ConvertToJavaHandler.invoke(ConvertToJavaHandler.java:42)
	at com.intellij.refactoring.actions.BaseRefactoringAction.actionPerformed(BaseRefactoringAction.java:131)
	at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:216)
	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:86)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:151)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:231)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:310)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:911)
	at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:136)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:300)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:117)
	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:86)
	at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:109)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:118)
	at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:122)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:117)
	at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:513)
	at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:45)
	at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:533)
	at java.awt.Component.processMouseEvent(Component.java:6533)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6298)
	at java.awt.Container.processEvent(Container.java:2236)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
	at java.awt.Container.dispatchEventImpl(Container.java:2280)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:645)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

WTF!? Que diable La deuxième ligne à partir du haut de cette trace de pile

at org.jetbrains.plugins.groovy.refactoring.convertToJava.TypeWriter.visitDisjunctionType(TypeWriter.java:155)

Enquêter

Enquête

visitDisjunctionType Si vous recherchez "visitDisjunctionType`?" PsiTypeVisitor.java # L62).

  @Override
  public Object visitDisjunctionType(@NotNull PsiDisjunctionType disjunctionType) {
    //it is not available in groovy source code
    throw new UnsupportedOperationException();
  }

C'est une erreur. Apparemment, l'argument «PsiDisjunctionType» représente une spécification comme «A | B».

Qu'est-ce qui ne va pas d'autre?

Il semble que «PsiType» apparaisse, mais je ne suis pas sûr.

Conclusion

Cela a fonctionné lorsque je l'ai changé de manière appropriée. Si vous pensez que vous ne pouvez pas convertir quelque chose, cherchez ʻA | B`. Il peut être dans la partie spécifiée du type de la clause «catch». (Je me demande s'il y a autre chose ...?)

Recommended Posts

Que faire lorsque vous pensez que vous ne pouvez pas Groovy-> Java avec IntelliJ IDEA CE
Que faire si vous obtenez un avertissement groovy dans Thymeleaf Layout
Qu'utilisez-vous lors de la conversion en String?
Que faire si IllegalStateException se produit dans PlayFramework
Lorsque vous souhaitez remplacer dynamiquement l'annotation dans Java 8
Que faire si la ligne de commande est trop longue apparaît lors de la création d'un projet Gradle dans Intellij IDEA
Que faire si vous ne pouvez pas obtenir le texte d'un élément dans Selenium
Que faire si vous obtenez une erreur NoClassDefFoundError lorsque vous essayez d'exécuter eclipse sur Java 9
Que faire lorsqu'une exception java.io.IOException se produit dans GlassFish
Que faire lorsque la méthode n'est pas trouvée dans f: ajax
Que faire si la commande rails devient inutilisable
[Tutoriel Rails Chapitre 2] Que faire lorsque vous faites une erreur dans le nom de la colonne
Faites HelloWorld avec Java / IntelliJ / Gradle
Java + OpenCV 3.X avec IntelliJ IDEA
Que faire lorsqu'une exception javax.batch.operations.JobStartException se produit
Utilisez-vous Stream en Java?
Que faire si vous obtenez une erreur gcc dans Docker
Que faire lorsque les modifications du servlet ne sont pas reflétées
Que faire en cas de problème pendant Content Assist
Que faire lorsque vous rencontrez le problème node_modules avec docker-compose
Que faire si vous oubliez votre mot de passe root sur CentOS7
[Rails] Que faire si vous ne pouvez pas obtenir de paramètres avec form_with
Que faire lorsque vous souhaitez connaître la position source où la méthode est définie dans binding.pry
Que faire si vous obtenez une erreur de bibliothèque partagée JNI lorsque vous essayez de créer avec Eclipse
[IntelliJ IDEA] Comment ajouter automatiquement la finale lors de l'enregistrement d'un fichier Java
Que faire lorsqu'une exception javax.el.PropertyNotWritableException se produit
Que faire si vous ne pouvez pas installer le plug-in à partir d'Eclipse Marketplace
Comment faire une conversion de base en Java
Optimiser les déclarations d'importation Java dans IntelliJ IDEA
Que faire lorsque l'hôte bloqué: "nom d'hôte" apparaît dans Ruby on Rails
La première chose à faire lorsque vous voulez être satisfait d'Heroku sur GitHub avec Eclipse sur Java
Que faire si le processus Tomcat reste lorsque vous arrêtez Tomcat dans Eclipse
Que faire si l'opération non autorisée s'affiche lors de l'exécution d'une commande dans le terminal
Que faire lorsque la méthode non définie ʻuser_signed_in? '
Java --Introduire le plug-in CheckStyle dans IntelliJ IDEA et le refléter dans le formateur
Remarques sur la marche à suivre lorsqu'une exception WebView ClassNotFoundException se produit dans JavaFX 12
<f: ajax> Impossible d'attacher <f: ajax> à un non-ClientBehaviorHolder Que faire lorsque vous devenez parent
Déployez des applications Java développées dans l'environnement IntelliJ IDEA sur des instances Alibaba Cloud ECS
Que faire si vous ne pouvez pas activer la boîte de sélection créée par bootstrap-select
Que faire lorsque la valeur devient nulle dans le second getSubmittedValue () dans JSF Validator
Que faire si vous avez installé Java pour OS X sur macOS
Que faire lorsque "Aucun emplacement fourni. Impossible de créer l'URI." Apparaît sur CarrierWave
Que faire si l'installation de ffi échoue lors du lancement d'une application dans Rails
Paramètre pour afficher le Javadoc japonais dans IntelliJ IDEA
Lorsque vous souhaitez lier InputStream dans JDBI3
Une note quand vous voulez Tuple en Java
Que faire si vous transmettez des informations incorrectes
Ce que j'ai fait lorsque j'ai converti Java en Kotlin
Que faire lors du débogage "Source non trouvée"
[Java] Que faire si vous obtenez une erreur dans Eclipse disant "Non autorisé au niveau source inférieur à 1.X"
Que faire si vous ne trouvez pas le JDK que vous avez mis dans SDKMAN après la migration de bash vers zsh sous macOS
[React.useRef] Que faire lorsque le dernier état ne peut pas être référencé dans l'écouteur d'événements
Que faire si vous obtenez une erreur de nombre d'arguments erroné dans binding.pry